לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #5  
ישן 29-03-2012, 11:59
  ישראל K ישראל K אינו מחובר  
 
חבר מתאריך: 25.08.03
הודעות: 9,114
לא שאלתי שאלה...
בתגובה להודעה מספר 3 שנכתבה על ידי maxim maxim שמתחילה ב "תשובה"

אז אל תסבך את השאלה סתם, עזוב את הדרך לביצוע ה-ajax אם זה לא חלק מהשאלה

בהנחה שהבנתי נכון, אתה רוצה לדעת אם עדיף לטעון את תוכן הדף בתבנית XML, JSON או תבנית נתונים אחרת שאינה HTML ואז לעבד אותה וליצור את קוד ה-HTML באמצעות JS, או שעדיף ליצור ולטעון קוד HTML מוכן מהשרת?!

אני לא רואה דעה נחרצת ועדיפות לאחת הדרכים, זה מאד תלוי בקוד ובתוכן והצרכים משתנים.
באופן כללי, אם אתה טוען שכבת מידע שתעדכן את כל תכולת אלמנט מסויים. לדוגמה, רשמת מבזקים שהקוד המרכיב את המבזקים יכנס כולו לתוך אלמנט div מסויים, עדיף אולי ליצור את קוד ה-HTML בשרת (הרי זה לא אמור לדרוש משאבים רבים יותר מאשר עיבוד הרשומות ליצירת קוד JSON), וכך תחסוך בקוד JS מורכב יותר (באופן יחסי), ותסתפק בקוד פשוט כגון element.innerHTML... דבר שגם סביר להניח יוצג כשורה בכל הדפדפנים העדכניים ויקל גם על הביצועים.
במידה ובדף מוצגת טבלת מוצרים לדוגמה, ואתה טוען רשומות חדשות, ובוודאי ובוודאי אם הרשומות לא יתווספו כגוש אחד אלא בסדר אחר בתוך הטבלה, יותר סביר לטעון את הנתונים בתבנית אחסון כלשהי, לעבד וליצור את קוד ה-HTML באמצעות JS.
_____________________________________
בניית אתרים
פיתוח יישומי אינטרנט
שמות תחום, אחסון, עיצוב ושירותים נלווים.

פיתוח, שירות,יעוץ והדרכה.

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #6  
ישן 02-04-2012, 20:18
  maxim maxim maxim maxim אינו מחובר  
 
חבר מתאריך: 28.03.12
הודעות: 4
בדיוק לזה התכוונתי :-)
בתגובה להודעה מספר 5 שנכתבה על ידי ישראל K שמתחילה ב "לא שאלתי שאלה..."

"בהנחה שהבנתי נכון, אתה רוצה לדעת אם עדיף לטעון את תוכן הדף בתבנית XML, JSON או תבנית נתונים אחרת שאינה HTML ואז לעבד אותה וליצור את קוד ה-HTML באמצעות JS, או שעדיף ליצור ולטעון קוד HTML מוכן מהשרת?!"

אתה יכול בבקשה לפרט את: "ובוודאי ובוודאי אם הרשומות לא יתווספו כגוש אחד אלא בסדר אחר בתוך הטבלה"?

אני אפרט מעט יותר בכדי להסביר מה אני רוצה לעשות:
מדובר ברשימה של מוצרים. מתחת לרשימת המוצרים יש טבלה המציגה פרטים על המוצר. יש בערך כ20 שורות בטבלה.
ברירת המחדל(כאשר המשתמש מגיע לדף בפעם הראשונה) היא להציג את הנתונים של המוצר הראשון. כאשר לוחצים על מוצר אחר ברשימה, תוכן הטבלה אמור להתחלף ולהציג את הנתונים של המוצר שלחצו עליו.

אפשרות אחרת ששקלתי היא להעביר את ה ID של הוצר בכתובת של הדף(myproducts.php?product_id=20) ואז להציג את הטבלה בהתאם לproduct_id הזה.
כלומר בכלל לא לעשות שימוש ב ajax.

אשמח לשמוע את עצתכם.

שוב תודה!
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #7  
ישן 02-04-2012, 22:06
  ישראל K ישראל K אינו מחובר  
 
חבר מתאריך: 25.08.03
הודעות: 9,114
בתגובה להודעה מספר 6 שנכתבה על ידי maxim maxim שמתחילה ב "בדיוק לזה התכוונתי :-)"

למיטב הבנתי, במקרה שאתה מתאר, אתה מבקש מהשרת פרטים על מוצר, ואת הפרטים אתה מכניס לתוך אלמנט מסויים.
במקרה כזה, הגיוני שהשרת יחזיר קוד HTML שאינו צריך לעבור עיבוד נוסף על מנת להתאימו לתצוגה, וללא אף עיבוד נוסף על התוכן, להכניסו ישירות לאלמנט הנדרש.
קוד:
<div id="productDetails986"></div> # HTTP_REQUEST = XMLHttpRequest object - site/productDetails?id=986 document.getElementById("productDetails986").innerHTML = HTTP_REQUEST.responseText;


ישנם מקרים בהם יש לנו טבלת HTML, ואנחנו רוצים להוסיף מס' רשומות, להסיר מס' רשומות, או אף לערוך מס' רשומות.
במקרה כזה, לא נבקש מהשרת את השורות הנוספות כקוד HTML ונכניס את התשובה ישירות לתג tbody באופן שיחליף את כל הרשומות (tbody.innerHTML = HTTP_REQUEST.responseText) או באופן שבו נוסיף את השורות שהתקבלו לשורות הקיימות (tbody.innerHTML += HTTP_REQUEST.responseText) - פעולה שאגב עלולה להיות איטית מאד במידה ולא מדובר במחרוזת קצרה, אלא נשלוף מהשרת את התשובה באופן שבו נוכל לעבד את התשובה באמצעות קוד JS, נעבור על התוכן ונוסיף כל שורה בנפרד.

קוד דוגמה עבור XML:
קוד:
<table id="productsList"> <tbody></tbody> </table> var productsTable = document.getElementById("productsList").getElementsByTagName("tbody")[0]; # HTTP_REQUEST = XMLHttpRequest object - site.com/productDetails/986 var products = HTTP_REQUEST.responseXML.getElementsByTagName("product"); var tr; for(x in products){ tr = document.createElement("div"); tr.innerHTML = "<td>" + products[x].firstChild + "</td><td>" + products[x].firstChild.nextSibling + "</td>"; productsTable.appendChild(tr); }


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


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

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

פיתוח, שירות,יעוץ והדרכה.

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 13:33

הדף נוצר ב 0.05 שניות עם 10 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר