ראשי > פיתוח > לפתוח דף חדש

לפתוח דף חדש

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

יש למעשה שתי שיטות דפדוף עיקריות (ועוד אחת בהמשך):

  1. שרת האפליקציה קורא את כל הרשימה מה-DB אל מבנה בזיכרון (כמו DataSet בדוט נט) ומשם הוא מבצע rendering ל-HTML רק את המידע שיש להציג בדף.
  2. שרת האפליקציה מפעיל SQL על כל פעולת דפדוף ומביא מה-DB רק את המידע הרלוונטי שיש להציג בדף הנוכחי.

יתרונות וחסרונות

שיטה

יתרונות

חסרונות

1

מתבצעת קריאה בודדת לשרת ה-DB

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

2

כמות הזכרון הנצרכת בשרת האפליקציה היא קטנה (כגודל הפריטים בדף).

כל פעולת דפדוף יוצרת ביצוע שאילתא ב-DB

 

מדוע השיטה השניה עדיפה? בגלל הפסיכולוגיה של משתמשים באינטרנט. משתמשים לא אוהבים לדפדף יותר מדי. אם, למשל, נשלפו 10000 פרטים ומוצגים 20 פריטים בדף (כלומר נוצרים 500 דפים), אזי המשתמשים לרוב יסתכלו בדף הראשון והשני. הסיכוי שיבחרו להסתכל בדף מס' 392 הוא לרוב קלוש מאד. בגוגל יודעים זאת היטב ומנגנון שליפת תוצאות החיפוש בנוי כך שנקבל מהר את תוצאות החיפוש של הדפים הראשונים.

ישנה גם שיטה מס' 3 שהיא שילוב של שיטה 1 ו-2. בשיטה זו יוצרים "מגה דף" בזכרון, כלומר, מעלים ל-DataSet כמה דפים (כלומר סוג של cache). אם נשתמש בדוגמה שלעיל, נבנה "מגה דף" של 100 פריטים ("מגה דף" = 5 דפים). כשהמשתמש יבקש לראות את דף 2 (פריטים 21 עד 40) אז נציג את הפריטים מה-DataSet ולא נבצע קריאה נוספת ל-DB.

שיטה 3 – יתרונות וחסרונות

שיטה

יתרונות

חסרונות

3

הרבה פחות קריאות ל-DB מאשר בשיטה השניה וצריכת הזכרון בשרת האפליקציה קטנה בהרבה מבשיטה הראשונה.

מנגנון ה-Caching הזה (בדוגמה, 5 דפים), קצת יותר מורכב לפיתוח. צריך לדעת מתי לקרוא מה-DB ומתי לקרוא מה-cache.

 

Advertisements
  1. אין תגובות.
  1. No trackbacks yet.

כתיבת תגובה

הזינו את פרטיכם בטופס, או לחצו על אחד מהאייקונים כדי להשתמש בחשבון קיים:

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s

%d בלוגרים אהבו את זה: