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

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



  #1  
ישן 06-10-2007, 11:28
  maornit maornit אינו מחובר  
 
חבר מתאריך: 13.09.07
הודעות: 3
PHP ו-AJAX

שלום,



נתקלתי בבעיה בהרצת קוד PHP אשר מריץ סקריפט נוסף ע"י ajax.

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



הרצת מספר אינסופי של threads ע"י ajax מתקבל בצורה טובה מאוד ב-maxton ו-firefox.



ואילו, ב-explorer התהליך לא עובד בצורה זהה אלא,

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



הדבר לא ברור לי למה אותו דבר רץ בצורה שונה על אקספלורר ועל maxton/firefox .

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

צרפתי את הקוד בו אני קוראת לסקריפט ע"י ajax.



אשמח להצעותיכם,



שיהיה חג שמח לכולם,

אורנית


קוד PHP:
 <script type=\"text/javascript\">                    
 
                        var ajaxRequest = null;
 
                        try {    
 
                            ajaxRequest = new XMLHttpRequest(); 
 
                            } 
 
                        catch (trymicrosoft) 
 
                            {
 
                            try {    
 
                                ajaxRequest = new ActiveXObject(\"Msxml2.XMLHTTP\");
 
                                } 
 
                          catch (othermicrosoft) 
 
                                {
 
                                try {
 
                                    ajaxRequest = new ActiveXObject(\"Microsoft.XMLHTTP\");
 
                                    } 
 
                                  catch (failed) 
 
                                    {
 
                                        document.write (\"fail\"); 
 
                                    } 
 
                                }
 
                            }
 
                      ajaxRequest.open(\"POST\",'agentThread.php?id=
$agentID', true); 
 
                        ajaxRequest.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\");                        
 
                        ajaxRequest.send(null); 
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #4  
ישן 07-10-2007, 16:26
  DCD DCD אינו מחובר  
 
חבר מתאריך: 17.05.05
הודעות: 7,321
בתגובה להודעה מספר 1 שנכתבה על ידי maornit שמתחילה ב "PHP ו-AJAX"

אני חושב שיש בעיות עם קינון של try...catch אחד בתוך השני.

אני זוכר שבעבר ניסיתי לקנן 3 try...catch אחד בתוך השני, וזה הביא לי שגיאה. אולי עשיתי משהו לא נכון...

בכל מקרה, במקום לכתוב את כל הקוד הארוך הבא:
קוד:
var ajaxRequest = null; try { ajaxRequest = new XMLHttpRequest(); } catch (trymicrosoft) { try { ajaxRequest = new ActiveXObject(\"Msxml2.XMLHTTP\"); } catch (othermicrosoft) { try { ajaxRequest = new ActiveXObject(\"Microsoft.XMLHTTP\"); } catch (failed) { document.write (\"fail\"); } } }

אני הייתי מעדיף לכתוב:

קוד:
var ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP") || new ActiveXObject("Microsoft.XMLHTTP") || new XMLHttpRequest();


חוסך הרבה מקום וגם מהיר יותר.

דבר נוסף, כדאי לקבוע את הכותרים הבאים:
קוד:
ajaxRequest.setRequestHeader("Cache-Control", "no-cache"); ajaxRequest.setRequestHeader( "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" );


בזכותם תקבלי מידע רענן\חדש\מעודכן כל פעם שתשלחי בקשת AJAX.
מומלץ להוסיף גם ל-URL פרמטר נוסף, שערכו שווה לזמן, כדי ליצור קישורים חדשים כל פעם מחדש. זה גם עוזר לקבלת מידע עדכני.

דבר אחר, למה שלא תנסי קוד שבטוח עובד?
ראי דוגמא פה:
http://www.w3schools.com/xml/xml_http.asp

נערך לאחרונה ע"י DCD בתאריך 07-10-2007 בשעה 16:29.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

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

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

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

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



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

הדף נוצר ב 0.04 שניות עם 12 שאילתות

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

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