У меня просто есть json-страница в localhost, и я сохраняю данные этой страницы в файле, мне нужно сохранить эту страницу каждые 5 секунд, поэтому я разработал этот код в ajax, используя страницу в php с командой exec, Я использовал функцию setinterval для обновления, но мой код выполняет функцию getRequest только один раз. Здесь HTML:Ajax, почему функция setInterval не работает?
<script type="text/javascript">
// handles the click event for link 1, sends the query
function getOutput() {
setInterval(function(){
getRequest(
'prova1.php', // URL for the PHP file
drawOutput, // handle successful request
drawError // handle error
);
return false;
},3000);
}
// handles drawing an error message
function drawError() {
var container = document.getElementById('output');
container.innerHTML = 'Bummer: there was an error!';
}
// handles the response, adds the html
function drawOutput(responseText) {
var container = document.getElementById('output');
container.innerHTML = responseText;
}
// helper function for cross-browser request object
function getRequest(url, success, error) {
var req = false;
try{
// most browsers
req = new XMLHttpRequest();
} catch (e){
// IE
try{
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
// try an older version
try{
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
return false;
}
}
}
if (!req) return false;
if (typeof success != 'function') success = function() {};
if (typeof error!= 'function') error = function() {};
req.onreadystatechange = function(){
if(req.readyState == 4) {
return req.status === 200 ?
success(req.responseText) : error(req.status);
}
}
req.open("GET", url, true);
req.send(null);
return req;
}
</script>
А вот страница PHP:
<?php
exec(" wget http://127.0.0.1:8082/Canvases/Fe0_Cbc1_Calibration/root.json -O provami3.json", $output);
echo 'ok';
?>
Я новичок в PHP, JavaScript Ajax и т.д., и Im обучения его часть во время, я знаю, что может быть, есть простой способ для него использовать jQuery, но пока я изучаю Ajax, поэтому я хотел бы получить совет для этого с Ajax. Спасибо всем.
Потому что вы использовали 'return false;' в 'setInterval()'. – Manwal
@Manwal, return false не влияет на setInterval –
Почему, по вашему мнению, он работает только один раз? –