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

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



  #1  
ישן 08-05-2009, 14:45
  משתמש זכר yoavmatchulsky yoavmatchulsky אינו מחובר  
 
חבר מתאריך: 15.08.06
הודעות: 1,561
שלח הודעה דרך ICQ אל yoavmatchulsky שלח הודעה דרך MSN אל yoavmatchulsky Facebook profile
[JS] בעית performance

אהלן,

אני בונה אפליקצית ווב שמשתמשת בJS בצד לקוח כדי לעשות כל מני מניפולציות על מידע (שמיוצר ב PHP). הרעיון הוא שיש לי רשימה גדולה של נתונים כאשר לכל נתון יש checkbox שמאפשר לבחור אותו, ויש אפשרות להוציא את הנתונים ולשמור לקובץ.

בנוסף (וכאן בעצם הבעיה העיקרית), לכל נתון יש כמה מאפיינים, שלפיהם יש אפשרות לעשות MASS CHECK. הפונקציות האלו משתמשות ב getElementById על רשימה ארוכה של IDים, שנוצרים בצד שרת לפי המאפיינים של הנתונים. דוגמא, אם קיים נתון עם id=a_2_3, והוא נחשב נתון "רלוונטי" אז ירשם ב JS:
קוד:
var relevant_ids = ['a_2_3', 'a_1_3', ... ]


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

לפי מה שהבנתי, לדפדפן יש איזה מנגנון CACHE שגורם ל getElementById לעבוד מהר יותר אחרי פעם אחת, ולכן הדפדפן נתקע רק בפעמים הראשונות שאני משתמש ב masschecks.

האם למישהו יש עצה איך לייעל את הקריאות? אני לא מצליח לחשוב על דרך אחרת לשנות מאפיינים של קבוצה של אלמנטים בלי להשתמש ב getElementById.

אגב, מה שכן הצלחתי לעשות זה להחשיך את המסך (ע"י DIV נסתר ותמונה של LOADING), אבל הדפדפן עדיין נתקע ולא נותן להגיב.

תודה למי שקרא עד לפה
_____________________________________
!!אזהרה!!
ההודעה עלולה להכיל שברי אגוזים ו/או איברי דגים כלשהם
!!אזהרה!!

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #5  
ישן 10-05-2009, 09:54
  משתמש זכר yoavmatchulsky yoavmatchulsky אינו מחובר  
 
חבר מתאריך: 15.08.06
הודעות: 1,561
שלח הודעה דרך ICQ אל yoavmatchulsky שלח הודעה דרך MSN אל yoavmatchulsky Facebook profile
בתגובה להודעה מספר 4 שנכתבה על ידי שימי שמתחילה ב "זה רק כדי לראות היכן הבעייה"

ניסיתי על FF 3.0.6, והJS עובד סביר יחסית.
עדיין יש לאג בין לחיצות, אבל אני יכול לחיות עם זה.

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

תודה על העזרה, ואם למישהו יש רעיון איך לשפר ביצועים ב FF2, אשמח לשמוע
_____________________________________
!!אזהרה!!
ההודעה עלולה להכיל שברי אגוזים ו/או איברי דגים כלשהם
!!אזהרה!!

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #9  
ישן 08-05-2009, 16:39
  משתמש זכר yoavmatchulsky yoavmatchulsky אינו מחובר  
 
חבר מתאריך: 15.08.06
הודעות: 1,561
שלח הודעה דרך ICQ אל yoavmatchulsky שלח הודעה דרך MSN אל yoavmatchulsky Facebook profile
בתגובה להודעה מספר 8 שנכתבה על ידי dorM שמתחילה ב "לא בטוח שזה ייעל את הביצועים..."

אני אנסה גם את זה. הם כולם נמצאים בתוך FORM.

עדיף לא להשתמש ב getElementsByTagName כי אני לא רוצה שהפונקציה תעבור על 8000 צ'קבוקסים, אלא רק על אלו שאני צריך.

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

יש לי סברה שאם אני אעביר את המערכת לjquery או דומיו, אז אולי הפונקציות יתייעלו. מישהו מכיר והתנסה ויודע להגיד אם באמת יש שיפורים במהירות?
_____________________________________
!!אזהרה!!
ההודעה עלולה להכיל שברי אגוזים ו/או איברי דגים כלשהם
!!אזהרה!!

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

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

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

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

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



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

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

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

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