10-07-2010, 07:42
|
|
|
חבר מתאריך: 22.06.06
הודעות: 44
|
|
jQuery ו- AJAX Comet/Push/HTTP Streaming
שלום לכולם
יכול להיות ש- jQuery לא תומכת בזה?
אני לא מדבר על ה- plugin שמתאים לגרסה 1.2 (עכשיו אנחנו ב1.4.2)...
זה מאוד מוזר לי כי טכנית זה אמור לעבוד...
קובץ ה javascript:
קוד:
function updateList()
{
$.post(
'ajax.php',
{list: $('#list').html()},
function(data)
{
alert(1);
document.getElementById('list').innerHTML = data;
updateList();
}
);
}
updateList();
בקובץ ajax.php יש בעצם כמו שצריך לולאה אינסופית
הלולאה בודקת אם המשתנה list שאני מעביר דרך POST (כמו שניתן לראות) שווה לטקסט הכי עדכני שבמסד, אם הוא שווה (ולכן אין צורך בעדכון) אז זה לוקח השהייה של 5 שניות ואז בודק שוב (בקובץ ajax.php)... כשיש הבדל בין הטקסטים ויש צורך בעדכון זה עוצר את הלולאה, שולח כפלט את הטקסט המעודכן ויוצר בקשה מחדש (ברקורסיה - כמו שניתן לראות בקוד).
הוספתי את ה- alert בשביל debugging והבעיה היא שהוא קופץ כל פחות שניה! לא כל 5 שניות... כלומר הפונקציה הרקורסיבית מתעלמת מהעיכוב שהשרת נותן לה - היא פשוט ממשיכה...
הקובץ ajax.php קיים והjs מזהה אותו אבל כאשר הלולאה היא אינסופית (כשאין תוכן חדש) הוא פשוט מתעלם ושולח שוב בקשות מחדש... כאשר הלולאה נעצרת (כשיש עדכון) זה מעדכן אבל אז שוב חוזר לרצף של בקשות...
איפה הבעיה?
יכול להיות שjquery פשוט לא תומכת בcomet ואאלץ לבצע אותו מחוץ למסגרת שלה?
|