मैं एक लंबी मतदान विधि चैटरूम कर रहा हूं। लेकिन ऐसा लगता है कि, जब एक लंबा मतदान होता है और मैं क्रोम में पृष्ठ को रीफ्रेश करता हूं या मैं सब कुछ एक बार एसिंक अनुरोध भेजने की कोशिश करता हूं (यानी मैं ब्राउज़र को बंद/दोबारा खोलने तक फिर से अपना डोमेन लोड नहीं कर सकता)।लंबे मतदान समय समाप्ति मुद्दे
मेरे ग्राहक पक्ष कोड है:
$(document).ready(function() {
setTimeout(
function() {
longPollForMessages();
},
500
);
});
function longPollForMessages()
{
$.ajax({
url: url,
dataType: 'json',
success: function(data) {
$('#chat_messages').append('<div>'+data.messages+'</div>');
longPollForMessages();
}
});
}
और मेरे serverside:
while(true) {
$messages = $db->getMessages();
if (!$messages || sizeof($messages)==0) {
sleep(1);
} else {
echo '{"message":'.json_encode($messages).'}';
die();
}
}
कोई भी विचार? कोई वाक्यविन्यास त्रुटियां मानें।
सर्वरसाइड कोड –
में 'echo' के बाद' ब्रेक डालने का प्रयास करें; धन्यवाद आपका उत्तर :) मैं वास्तव में ऐसा था लेकिन मेरे प्रश्न कोड में शामिल करना भूल गया। तो यह मुद्दा नहीं है। –
दोस्तों, मैंने इसे इस प्रश्न से बाहर निकाला: http://stackoverflow.com/questions/4457178/long-polling-locking-up-other-ajax-calls - php एक दिए गए सत्र को लॉक करता है जब तक कि पृष्ठ लोड नहीं हो जाता है दूसरा AJAX कॉल के माध्यम से जाने में सक्षम नहीं था। Session_write_close() को कॉल करके आपको लॉक जारी करना होगा; –