Как передать переменную в php скрипт из функции Jquery $ (document) .ready

Я строю чат. У меня есть этот рабочий код Jquery, который вызывает logs.php каждую секунду и обновляет чат.

$(document).ready(
function(e) {
$.ajaxSetup({cache:false});
setInterval(function() {
$('#chatlogs').load('logs.php');
updateScroll();
}, 1000);
}
);

Как вы можете видеть, также updateScroll, функция JS на моей странице, вызывается. Updatescroll создает переменную, которую я хотел бы передать logs.php, Есть какой-либо способ сделать это? Другими словами, updatescroll в основном проверяет каждую секунду, прокрутил ли пользователь до верха чата. Если так, я скажу logs.php загрузить — скажем — еще 10 сообщений. Но для того, чтобы сделать это, мне нужно что-то updatescroll переходит к функции Jquery и, таким образом, на logs.php, Ты понял? Спасибо

1

Решение

Во-первых, когда дело доходит до AJAX, я бы порекомендовал использовать window.setTimeoutинтервалы могут стать хитрыми, когда вы выполняете вещи асинхронно (если один вызов зависает, вы можете получить несколько вызовов одного и того же сценария).

так что то вроде

(function($){
var update_messages = function(){
var count = updateScroll();
$('#chatlogs').load('logs.php?count='+count, function(){
window.setTimeout(update_messages, 1000);
});
}
$(document).ready(function(){
$.ajaxSetup({cache:false});
update_messages();
});
})(jQuery);

Тогда в вашем PHP-скрипте «count» будет доступен через $_GET['count'],

РЕДАКТИРОВАТЬ: вы можете видеть, что анонимная функция отправляется в качестве второго аргумента для загрузки, она будет вызываться ПОСЛЕ того, как AJAX-вызов завершен, поэтому мы можем убедиться, что одновременно выполняется только 1 из них

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]