ערכתי לאחרונה בתאריך 15.03.10 בשעה 15:58 בברכה, שרון אורן
שוב שלום ותודה לכולם על העזרה הרבה.יש לי דף כתוב ב PHP. ויש בו סקריפט דינמי שאמור לשנות את העוגיות בזמן אמת במקביל להגדרות שהמשתמש בחר.
יש לי מערך: 1,2,3,4,5 שהוא שמור ככה גם בעוגיה כברירת מחדל בכניסה הראשונה של המשתמש לאתר.
אם המשתמש בחר לשנות את ההגדרות אז הסדר במערך צריך להשתנות.
לשם כך השתמשתי בקוד הבא:
jQuery.noConflict(); (function($) { $.post("dynamic/wi_switch.php", {arr: cp}, function(data){ if (data.length>0) { Dobj=document.getElementById("dw"+PUT_INDX); Dobj2Replace=document.getElementById("dw"+PUSH_INDX); var tmpObj=Dobj.innerHTML; Dobj.innerHTML=Dobj2Replace.innerHTML; Dobj2Replace.innerHTML=tmpObj; arr=explode("1|2|3|4|5","|"); for (i=1;i<=5;i++) { num=chr2num(Wigt[i-1],arr); p=chr2num(Wigt[i-1],Wigt)-1; ttll=getWittl(Wigt[i-1]); if(navigator.userAgent.indexOf("Gecko")>-1) { Swt_obj.setAttribute("onclick","startWiSwitchWiz("+p+",'"+ttll+"','"+Wigt[i-1]+"',"+i+",1)"); obj.setAttribute("onclick","startprocessWiSwitch("+num+",'"+Wigt[i-1]+"',"+i+",1)"); } else { Swt_obj.onclick = new Function ("startWiSwitchWiz("+p+",'"+ttll+"','"+Wigt[i-1]+"',"+i+",1)"); obj.onclick = new Function("startprocessWiSwitch("+num+",'"+Wigt[i-1]+"',"+i+",1)"); } PUT=""; PUSH="";PUT_INDX="";PUSH_INDX=""; finished=true; } resetWiSwitch(); } }); })(jQuery);
|
הסקריפט שכתבתי עובד מעולה. רק יש בעיה אחת: הזמן שלוקח לו לבצע את הסקריפט המרוחק - לא שזה קריטי מבחינת המשתמש זה נמדד במילי שניות.
אבל במצב שלוקח לשרת קצת יותר זמן לבצע את הסקריפט המרוחק שבעצם מעדכן את העוגיות,
או שהמשתמש התחיל שוב לשנות את ההגדרות לפני שהסקריפט סיים - אז אני יכול וקרה לי שהגעתי למצב שהעוגייה קיבלה את הערך הבא: 5,2,1,3,3.
יש פעמיים את הערך 3 וזו תוצאה הרסנית עבורי.
אפשר לומר שהוא לא הספיק לשנות את הערך של האירוע onclick לפני הלחיצה הבאה של המשתמש על הכפתור.
ניסיתי ע"י המשתנה הבוליאני finished שרק אם הוא שווה ל true יהיה אפשר להתחיל שוב את התהליך אבל זה לא ממש עזר.
אני בטוח שזאת הבעיה בחנתי את זה מכל זוית אפשרית והמנגנון של הקוד והרעיון עובד בצורה חלקה.
תודה ויום טוב
פתיחת אייפונים נעולים לסים פרי
https://www.unlock-it.co.il