ציטוט:
נכתב במקור על ידי Tomer
האפליקציה (PHP, HTML) מציגה נתונים בטבלה (עזוב מה הנתונים עצמם, לא רלוונטי) ואמורה לאפשר לסנן אותם.
מה הכוונה בסינון? כמו אקסל. כמו התמונה שנתתי. כותרת לעמודה שאפשר ללחוץ עליה ולבחור את הנתונים של העמודה - ורק הנתונים האלו יוצגו (לאחר לחיצה על "שלח" לדוגמא וסינון צד-שרת).
הבעיה שלי היא עם ה Plugins של jQuery שהשתמשתי בהם עד עכשיו - הם פשוט איטיים מדי בקליטת הנתונים. הם אמורים להפוך <select multiple...> לעמודה מסודרת שאפשר לבחור כמה אייטמים ולסנן - אבל זה קורה באיטיות ולוקח כמעט 10 שניות כדי שהעמוד יוצג עם אפשרויות הסינון.
אני מחפש דרך יותר מהירה ונוחה לעשות את זה. אני צריך לאפשר סינון מתקדם (לבחור כמה אופציות בכל עמודה).
אם אני לא אמצא פתרון עד שאני אחזור לצבא, אני מקווה שאני אוכל להלבין איזו תמונה מסך, או אפילו את כל הקוד כדי להריץ אותו אצלי בשרת ולהציג לכם בדיוק מה אני צריך שיקרה.
רעיונות?
היי,
בתגובה שלך דיברת על שיפור זמן הטעינה של הנתונים עצמם. זו לא הבעיה שלי. הבעיה היא טעינת הנתונים לתוך ה Plugin שמארגן אותם לאפשרויות סינון כמו אקסל (כמו שרשמתי לעומר  )
|
לדעתי אכן הכי טוב יהיה לראות קצת קוד ולהבין בדיוק איפה הבעיה.
בכל אופן, אם הזנת הנתונים ל-plugin תוקעת את הדפדפן למספר רגעים (ולא משיכת הנתונים ויצירתם ע"י השרת - בין אם זה DB או קוד צד שרת), אז צריך להתחיל לחפור ולחפש בדיוק מה תוקע.
האם זה בגלל הכמות? אם כן, אפשר אולי שכבר בעליית העמוד עצמו הוא יעלה עם הרשימה של האפשרויות מוכנה בתור JS/DOM. אם גם זה לא עוזר אז אפשר לנסות לכתוב או לשנות את הפלאגאין לבד.
מבעיות שנתקלתי בהם בתחום הזה של תקיעת דפדפן ע"י הרבה מידע ושינוי ה-DOM, למדתי שלעשות ככה:
קוד:
var div = $('<div/>'); //create a new div that is not in the DOM
for (var i in myDataArr){
$('<span/>').appendTo(div); //append the span to the div that is not in the DOM
}
div.appendTo(body); //append to the DOM
עדיף משמעותית מאשר לעשות משהו כזה (לשנותא ת ה-DOM בכל LOOP):
קוד:
var div = $('<div/>').appendTo(body); //create a new div and append to the DOM
for (var i in myDataArr){
$('<span/>').appendTo(div); //append the span to the div that *is* in the DOM
}
לסיכם, יכול להיות שהפלאגין שאתה משתמש בו לא הכי יעיל ולא כתוב הכי טוב. שינוי קטן כמו שהזכרתי למעלה לדוגמה, יכול לעשות פלאים ליעילות של הקוד.
אין מה לעשות, אם אכפת לך מיעילות צרך ללכלך ידים ואי אפשר לקחת משהו מוכן ולצפות מזה שהוא יעבוד בצורה הכי יעילה.