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

IgalSt לא מחובר  

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

אני חושב שאפשר לכתוב משהו יעיל אם אתה אומר לו מתי הגודל השתנה ואת הגודל החדש בלי שהוא יצטרך לגשת לדום ולבדוק את הגודל ואני גם חושב שאפשר לעשות את הסקרולינג עצמו GPU accelerated מה שיעשה את זה טוב כמעט כמו ה native, או לפחות לחסוך ב reflows
אפשר בהחלט לנסות.
פרט לכך שתצטרך לכתוב משהו בעצמך או לעשות fork מאור רציני לתוסף קיים, אתה גם תפתור בעיות מאוד מאוד ממוקדות.
הבעיה היא לדעתי שאם תנסה כל פעם לתת לתוסף את הגודל העדכני, אתה תפגע בהכמסה (encapsulation) של הלוגישה של התוסף עצמו. ככה בעצם כל מי שיכתוב דברים שמשפיעים על הסקרול יהיה חייב לדעת את הלוגיקה הפנימית (כלומר לחשב את הגודל החדש) ולזמן מטודה של הסקרולר המעוצב. כיום גם ככה הוא צריך לדעת, או לכל הפחות לזרוק איזשהו ארוע שידווח על כך שייתכן והיה שינוי כלשהו במימדים והסליידר יאזין לאירוע הזה ויבצע חישוב מחדש.
במצב האופטימלי היית רוצה להאזין לאיזשהו ארוע טבעי של הדפדפן שיגיד לך שהיה איזשהו שינוי. קיים אירוע כזה, DOMSubtreeModified, רק שהבעיה איתו שהוא נזרק ע"י הדפדפן אחרי כל שינוי (שינוי תוכן, הוספה/הסרה של Node וכו') ולכן מאוד בזבזני ובעצם לא שימושי כמעט.

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

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

עריכה:
אני קצת אגלוש לנושא טיפה אחר, אבל זה מקום טוב לקטר עוד קצת על כך שדפדפנים כיום כמעט ולא מאפשרים לעצב אלמנטים שתלויים במערכת ההפעלה (selectbox, סקרול, html5 date picker & form validation וכו') וחבל. ישנה התקדמות חלקים בנושאים הללו, אבל לא מספיק. זה הזוי שגם היום, בדפדפנים מודרנים כמו FF אנחנו עדיין נאלצים לעשות פעולות אקרובטיות על מנת לעצב selectbox והוא מתעלם מ- appearance: none.

Last edited by IgalSt; 09-07-13 at 21:06..
  Reply With Quote