זקוק לעצות לגבי עציצים...

זקוק לעצות לגבי עציצים...

אני רוצה לבנות עץ נחמד כזה (בסיגנון MSDN). יש לי הרבה כותרות במערכת, והחלטתי שזה חייב לבוא בצורת עץ. כמו שאמרתי - יש הרבה כותרות, ולכן אני גם מעדיף שלא כל העסק ירד ללקוח בכניסה הראשונה בגלל המשקל של זה. הרעיון בכללי הוא 2 פריימים (קטן וגדול) כשבקטן יופיע העץ. יש לי גם איזה בעיה עם מצב שבו הלקוח נכנס ישירות לעמוד (איך אני אטען לו את האיטם בעץ כמו ב-MSDN?). אז לפני שאני מתחיל לעשות שטויות - החלטתי להיכנס ולקבל עצות/טיפים/לינקים לבנייה נכונה, חכמה ויעילה של כזה יער
בתודה מראש...
 
לא

זה בנוי בשיטה הישנה והפשוטה. כמו שזהר אומר: "תקרא לפני שאתה מגיב". אני צריך משהוא שלא יטען את כל העץ בטעינה הראשונה של האתר, אלא בחלקים לפי תנועת הלקוח, ובנוסף - פיתרון לבעיית הקישור הישיר לעמודים פנימיים. אהה, ו... אני לא מחפש קוד מוכן
 

xyxyxy

New member
אתה יכול עם

xmlHTTP. בכל פעולה של הלקוח אתה טוען ענף שאתה צריך. או משהו יותר טוב שאני ממליץ (אף אחד לא שם עלי.. אז דגון גם המליץ על זה פעם...) זה להישתמש עם download behavior כמו שאני רואה את זה זה אומר לעבוד
 

זהר פלד

New member
ולגבי הקישורים הפנימיים...

הכי פשוט לזה לבדוק ב onLoad אם top=self, ואם לא, להפנות לפריימסט בעזרת location.href, עם queryString מתאים.
 

Admini

New member
download behavior מעולה

אבל אין לי מושג איך אני גורם לו להחזיר עוד נתונים חוץ מה-SRC של העמוד...
 

xyxyxy

New member
ממ.. ה src של העמוד?..

ה download יכול להחזיר לך הכל נגיד אתה קורא ל זה
bla.asp?xy="+bbb+";​
ואז זה מחזיר לך את התוצאה. ועם זה אתה עובד עשיתי משחק דמקה כאילו און ליין עם זה... אף פעם לא עץ אבל בעיקרון לא אמור להיות בעיה
 

Admini

New member
--------------->

function displaym2(options,id) { dwn.startDownload('tree2.asp?'+options ,onDone); }​
איך אני מעביר לפונקציה onDown את ה-ID כדי שהיא תדע איפה למקם את הפלט.
 

xyxyxy

New member
אוקי למשל

בקריאה כזאת
javascript:downloadId.startDownload('asp.asp?x=xyxyxy', startDwon)​
הפונקציה startDwon תיראה ככה
function startDwon(Res) { alert(Res) // the output of the asp file } עם זה אתה כבר לשחק​
 

Admini

New member
זה גם אני יודע

הבעיה מתחילה בזה שאני צריך לזהות את ה-ID של הכותרת, ואין לי מושג איך עושים את זה
 

xyxyxy

New member
הבנתי

אני לא מנסה אני כותב מהראש. תאורתית זה אמור לעבוד
function displaym2(options,id) { dwn.startDownload('tree2.asp?'+options ,function(Res) { id.innerHTML = res; }); }​
אתה תמיד יכול לשים את ה id במשתנה גלובלי...
 

Admini

New member
ניסיתי לפלוט סקריפט....

יעני שהעמוד המוחזר יפלוט אחד... אבל זה לא עזר.
 

DnaWebDesign

New member
יש דוגמא נחמדה לעץ כזה

הוא שואב את המידע מקובץ XML שאותו אתה יכול לחולל בצד השרת ממסד נתונים. רק הרמה הגבוהה עולה בכניסה, כל פתיחה של רמה מעלה את השלב הבא. הדוגמא היא מהאתר WebFx.eae.net.
 

aphrodisiac666

New member
רעיונות

או קיקודם כל לא הייתי נוגע בשום XMLHTTP או "התנהגויות" הייתי יוצר טפרית מלא (עדיף מ-DB) שכולל את הכול ואז מציג חלקים מתוכו עלידי השוואה מול הכתובת של האתר נגיד אם הHREF הנוכחי הוא www.atar.com/sparim אז מציגים את "הענף" של "sparim" או אפשר לעשות בדיקה מול QUARYSTRING בJS נגיד www.atar.com?mahlaka=sparim כמובן שבמצב כזה אתה חייב לשמור אם שם המחלקה כל הזמן ב-QUARYSTRING ואם אתה כבר שומר אותו שם והעץ נבנה בDB אז אפשר פשוט להתאים את העץ ב-ASP. אני אישית הייתי הולך על פתרון בצד לקוח. כי אני יותר אוהב צד לקוח. אבל יותר נכון יהיה לעשות את זה מ-DB ובצד שרת.
 

dagon

New member
ממש ../images/Emo31.gif

בולשיט: "אבל יותר נכון יהיה לעשות את זה מ-DB ובצד שרת". ברור שנכון להביא את התוכן מ-DB, אבל אין שום סיבה להגביל את כל האינטרקציה לצד השרת. הדבר הנכון לעשות הוא לשלב את שני הצדדים, בדיוק כמו שרוב האנשים הציעו כאן. זו הדרך האופטימלית להביא מינימום תוכן, ולשמור על state מלא כל הזמן. אחת הדרכים הטובות במקרה הזה היא XMLHTTP, ולאו דווקא ה-download behavior, מכיוון שלעצים יש תוכן הירארכי. ובעזרת XML ניתן להחזיר מספר רמות עומק ללא האקים ברמת הטקסט שמוחזר, וכמובן ניתן להשתמש ב-XSLT כדי לרנדר fragments של ענפים (או ללכת על ה-DOM). אז שפוי, 1. עדיף להמנע מפריימים, אין ממש סיבה להשתמש בהם והם רק יגבילו אותך. 2. כשנכנסים ישירות לדף תוכל לאתר את הענף שלו ב-DB, ולהחזיר את כל ההירארכיה ב-XML, שירונדר ע"י העץ בקליינט (MSDN עושים את הנ"ל בצורה טיפשית ביותר, ומחזירים רמה-רמה כשכל אחת דורשת HTTP Request נוסף). ואל תשכח לעשות קווים לעץ, כמו ב-control של windows, גם את זה לא טרחו לעשות ב-MSDN
.
 
למעלה