Я хочу вызвать функцию php через каждые 10 секунд, для этого я использую javascript setInterval. может ли кто-нибудь помочь в синтаксисе.как я могу вызвать функцию php из setInterval() в javascript?
ответ
Скажем, у вас есть script.php, где вы запускаете свою функцию PHP. Клиентская:
var working = false;
setInterval(ajaxCall, 10000); //10000 MS == 10 seconds
function ajaxCall() {
if(working)
return;
var xmlhttp;
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == XMLHttpRequest.DONE) {
working = false;
if(xmlhttp.status == 200){
console.log(xmlhttp.responseText);
}
}
}
xmlhttp.open("POST", "script.php", true);
xmlhttp.send();
working = true;
}
См дубликата вопрос (где я взял код выше): how do you set interval to ajax call in jquery [closed] и jQuery-less AJAX call.
Как вызвать функцию PHP через ajax, пожалуйста, помогите. – anish
Я не рекомендую это делать. Если сервер не будет выполнен до того, как мы его вызываем, мы прервем серверный процесс. – mplungjan
@mplungjan Поднимает хорошую точку, поэтому я бы просто установил переменную, пока вы ожидаете ответа, и установите ее, когда вы получаете ответ. Если переменная выключена, ничего не делайте. – nico
Нельзя использовать setInterval для вызова процесса сервера. Возможно, сервер не завершил работу, когда получил следующий вызов, и до того, как он что-то вернет.
Поскольку у нас есть Ajax, мы можем использовать обратный вызов для повторного вызова.
Например в JQuery - техника будет то же самое в readystate изменения в XMLHttpRequest в
function callServer() {
$.get("myserverprocess.php",function(data) {
$("#somecontainer").html(data);
setTimeout(callServer,10000);
});
}
ПРИМЕЧАНИЕ: Выше не будет пытаться снова, если это не удается. Если вам это нужно, чтобы попробовать еще раз, используйте этот
function callServer() {
$.ajax({
url: "myserverprocess.php",
type: 'get'
})
.done(function(data) {
$("#somecontainer").html(data);
})
.always(function() {
setTimeout(callServer,10000);
})
.fail(function() {
$("#somecontainer").html("Error");
});
}
В равнинных JS:
function callServer() {
var x = new XMLHttpRequest();
x.open("GET", "myserverprocess.php", true);
x.onreadystatechange = function() {
if (x.readyState==4 && x.status==200) { // remove status test to keep calling
document.getElementById("someontainer").innerHTML=x.responseText
setTimeout(callServer,10000);
}
x.send();
}
OP не упомянул о jQuery в своем вопросе, но это правильный ответ. Можете ли вы объяснить, почему это не прерывает сервер, пожалуйста? Похоже, у них будет такое же поведение. – nico
Он не будет звонить снова, пока после успешного возвращения с сервера. Я использую jQuery для краткости, но setTimeout можно использовать без изменения внутри успешного события readystatechange в простом JS – mplungjan
Хорошо имеет смысл, хороший ответ. – nico
- 1. Как я могу вызвать функцию javascript из php-файла?
- 2. Не могу вызвать функцию PHP из Javascript
- 3. как вызвать функцию javascript из php
- 4. Как вызвать функцию js из setInterval()
- 5. Как я могу вызвать функцию из другой функции в javascript
- 6. Как я могу вызвать PHP-функции JavaScript?
- 7. Как вызвать функцию php из функции JavaScript?
- 8. Как я могу вызвать функцию JavaScript из iOS push Plugin?
- 9. как вызвать функцию php из javascript «duplicate»
- 10. Как вызвать функцию JavaScript из PHP?
- 11. Как я могу очистить функцию setInterval?
- 12. Как вызвать функцию javascript из php echo?
- 13. Как я могу вызвать функцию javascript из iframe?
- 14. Как я могу вызвать функцию codebehind из JavaScript?
- 15. Как я могу вызвать функцию из dll?
- 16. Как я могу вызвать функцию из класса
- 17. Как я могу вызвать функцию javascript из href?
- 18. Как я могу вызвать функцию jquery из кода javascript?
- 19. Как вызвать функцию несколько раз? (В setInterval())
- 20. Как я могу вызвать функцию?
- 21. Могу ли я вызвать функцию Javascript из файла coffeescript?
- 22. Как вызвать функцию javascript в php-коде?
- 23. Как я могу вызвать функцию в C++
- 24. Как я могу вызвать событие keydown из кода в JavaScript?
- 25. Как я могу вызвать php-функцию в ajax
- 26. Как вызвать setinterval в jQuery?
- 27. Могу ли я вызвать функцию JQuery в состоянии PHP?
- 28. Как я могу вызвать команду php/wordpress из JavaScript?
- 29. Как я могу вызвать функцию javascript в контроллере AngularJS?
- 30. Как я могу вызвать функцию JavaScript в цикле
использование Ajax для достижения этой цели ... –
Используйте setInterval (AjaxcalltoMethod, 10000) – AkshayJ