#javascript #loops #xmlhttprequest #chat
#javascript #циклы #xmlhttprequest #Чат
Вопрос:
это мой первый пост здесь. Я уже некоторое время пишу сценарий чата, но столкнулся с проблемой. Когда я использую свой исходный код, браузер зависает, потому что он все еще пытается загрузиться. Я перепробовал почти все. Я немного в тупике, потому что у меня была идея клонировать функцию для перехода туда и обратно, и она ВСЕ РАВНО не будет работать. Вот фрагмент того, с чем я работаю.
function jumpanti(){
if (window.XMLHttpRequest)
{// code for IE7 , Firefox, Chrome, Opera, Safari, SeaMonkey
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 amp;amp; xmlhttp.status==200)
{
document.getElementById("chatContent").innerHTML = xmlhttp.responseText;
antifreeze();
}
}
xmlhttp.open("GET", "innerchat.php", false);
xmlhttp.send();
twemoji.parse(document.body);
// Twemoji parse
}
function antifreeze(){
if (window.XMLHttpRequest)
{// code for IE7 , Firefox, Chrome, Opera, Safari, SeaMonkey
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 amp;amp; xmlhttp.status==200)
{
document.getElementById("chatContent").innerHTML = xmlhttp.responseText;
jumpanti();
}
}
xmlhttp.open("GET", "innerchat.php", false);
xmlhttp.send();
twemoji.parse(document.body);
// Twemoji parse
}
Я пробовал, и это все равно не сработает. Я хочу, чтобы мой код пытался загружать чат, пока он не получит ответ 200, а затем цикл. У кого-нибудь есть какие-либо решения для этого, используя только XHR?
Комментарии:
1. Чаще всего приложения для чатов пишутся с помощью веб-сокетов, чем с помощью xhr. Проверьте medium.com/@noufel.gouirhate / … Кроме того, вам действительно нужно поддерживать IE5 и IE6? Держу пари, что ты этого не делаешь. 🙂
Ответ №1:
Я исправил проблему. Проблема заключалась в том, что у меня не был включен асинхронный XML внутри функции. Это сильно заморозило страницу. Я изменил xmlhttp.open("GET", "innerchat.php", false);
на xmlhttp.open("GET", "innerchat.php", true);