View Single Post
ישן 08-05-11, 09:54   # 13
IgalSt
מנהל פורום, עסק רשום
 
IgalSt's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: המרכז
גיל: 38
הודעות: 1,432
Send a message via Skype™ to IgalSt

IgalSt לא מחובר  

הרי בעליה הראשונה של העמוד יש לך את כל המידע שעולה יחד עם העמוד*. למה לא לייצר מהמידע הזה את אפשרויות הסינון בצד לקוח? זה לא אמור לקחת יותר מדיי זמן ריצה. מה גם שהמידע הזה אף פעם לא משתנה כך שהוא טוב לך מהרגע שהעמוד עלה ועד שהגולש יוצא ממנו.
אם הדבר הזה לוקח יותר מדיי זמן להתבצע בצד לקוח, בפעם הראשונה שכל אחת מהאפשרויות הסינון נפתחת (לכל עמודה), אתה יכול לגשת ולהביא רק את אפשרויות מה-DB ב-AJAX (מידע בלבד!). אם יש לך אינדקסים** טובים אז הפעולה אמורה לקחת קצת מאוד זמן להתבצע (שאילתה פשוטה עם Group By תחזיר לך את מה שאתה צריך). אחרי שאתה מקבל את המידע - תבנה את ה-HTML שלו דינאמית באמצעות JS.

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


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

** מאוד חשוב - גם אם עכשיו אתה לא רואה בעיה עם הביצועים של השליפה - בכל זאת מומלץ לכתוב אותן כי בסיבבת פרודקשן יהיו לך ביצועים פחות טובים בהכרח וגם לרוב אין אפשרות לצפות את העתיד של המערכת וכמה רשומות היא תחזיק.
  Reply With Quote