|
![]() |
# 1 |
חבר בקהילה
|
אתה יכול להריץ לולאה שלא תעשה כלום ואז לקרוא לפונקציה שלך
אבל הבעיה היא זמן הריצה של הלולאה במחשב של הגולש זה שונה אצל כל אחד קצת בעייתי |
![]() |
![]() |
# 2 | |
מנהל פורום, עסק רשום
|
ציטוט:
לבזבז משאבי עיבוד רק כדי להמתין קצת? it's a big no no! 2 אפשרויות יש לך: הראשונה זה לכתוב את זה לבד בצורה כזאת בערך: תגדיר מינימום תווים לביצוע הקריאה דבר ראשון. לרוב תו אחד או שנים זה קצת מדיי כדי לבצע חיפוש לפיהם. כך שהייתי הולך על לפחות שלושה תווים. בנוסף ב-onkeyup (ואגב גם onmouseout כי יכול להיות הגולש מדביק את זה וגם עם העכבר כפתור ימני וכו') להגדיר timeOut של כחצי שניה - שניה ולהשוות את זה למשתנה כלשהו. שורה לפני זה תעשה clearTimeout לאותו המשתנה כך שאם הוא הקליד אות נוספת אז תנקה את ההמתנה שלך ותתחיל שוב לספור. ולסיום, תאר את המצב הבא: יש לך ב-DB את הערכים האלה: מוצר ראשון, מוצר שני, מוצר שלישי הגולש הקליד "מוצ" - הסקריפט שלך הלך לשרת הביא את שלושת הערכים הקיימים. הגולש החליט להמשיך להקליד והוסיף ל"מוצ" גם את האות ר' ויצא לך "מוצר". האם תלך שוב ל-DB להביא את אותם שלושת הערכים? הרי אין מצב שתקבל משהו אחר. לכן כאן יהיה יפה להשתמש בקאשינג ולחפש בתוך hash table בצורה זולה מבחינת משאבים (החיפשו הוא בקליינט) ולא ב-DB בצורה בזבזנית מבחינת משאבים (שהן מדובר במשאבי שרת ו-DB). האפשרות השניה היא להשתמש ב-plugin מובנה ב-jquery UI - AutoComplete. לסיכום, לפני כחצי שנה מימשתי את AutoComplete יחד עם הקאשינג שדיברתי עליו עבור חברה שעבדתי בה. תוכל למצא דוגמא בחיפוש שבעמוד הזה - נסה להתחיל לחפש "הליכון" בחיפוש שבעמוד (זהו אחד הלקוחות של החברה ואל תשפוט אותי על הקוד שמסביב, כי לא אני כתבתי. אני כתבתי רק חלקים מהעמוד שבפנים - טבלאות וכל שאר הדברים המכוערים שם זה לא הסגנון שלי ![]() בהצלחה |
|
![]() |
![]() |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
|
|