Аякс работает только один раз - PullRequest
0 голосов
/ 22 мая 2011

Я хочу преобразовать свой веб-сайт в ajax, поэтому я играл с ним. Я написал простую HTML-страницу и PHP-скрипт, но когда я запускаю его, я продолжаю получать одно и то же время. Я уверен, что упускаю что-то простое, но не могу понять это.

PHP

<?php
echo date("Y.m.d H:i:s", $_SERVER['REQUEST_TIME']);
?>

HTML

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Untitled Document</title>
<script language="javascript" type="text/javascript">
<!-- 
//Browser Support Code
function ajaxFunction(){
var ajaxRequest;  // The variable that makes Ajax possible!

try{
    // Opera 8.0+, Firefox, Safari
    ajaxRequest = new XMLHttpRequest();
} catch (e){
    // Internet Explorer Browsers
    try{
        ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try{
            ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e){
            // Something went wrong
            alert("Your browser broke!");
            return false;
        }
    }
}
// Create a function that will receive data sent from the server
ajaxRequest.onreadystatechange = function(){
    if(ajaxRequest.readyState == 4){
        document.myForm.time.value = ajaxRequest.responseText;
    }
}
ajaxRequest.open("POST", "serverTime.php", true);
ajaxRequest.send(null); 
}
//-->
</script>
</head>
<body>
<form name='myForm'>
Name: <input type='text'  name='username' /> <br />
Time: <input type='text' name='time' />
    <input type="button" onclick="ajaxFunction();" value="here">
</form> 
</body>
</html>

Каждый раз, когда я нажимаю кнопку, я получаю одно и то же время назад. Это заставляет меня думать, что я говорю с сервером только один раз. Я хочу иметь возможность нажимать кнопку каждую секунду и видеть изменение времени. Нужен ли какой-нибудь код для сброса моего запроса каждый раз?

Заранее спасибо за любую помощь. Мне нужно понять это, прежде чем я смогу двигаться вперед.

Ответы [ 3 ]

2 голосов
/ 22 мая 2011

Ответы могут кэшироваться браузером.Простое хакерское решение - добавить в URL случайный параметр get, например, var url = "http://www.example.com/?rand=" + Math.random();

0 голосов
/ 27 сентября 2012

переместить ajaxRequest.open («POST», «serverTime.php», true); перед строкой ajaxRequest.onreadystatechange = function ().

вот заказ ajax

открыт () onreadystatechange отправить ()

0 голосов
/ 22 мая 2011

Вы используете $ _SERVER ['REQUEST_TIME'], который возвращает время первоначального запроса.Вам нужно использовать либо time (), либо вообще не указывать этот параметр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...