我正在尝试使用 jQuery 的 $.ajax() 在基于时间间隔的基础上获取 PHP 页面,该页面从 MySQL 表中打印最新的条目。如果有新条目,则将它们打印在页面上,如果没有,则打印“NaN”。
这是我的 PHP 函数,用于检查新条目:http: //pastebin.com/R6NHDU3t
这是 HTML + jQuery,用于检查上述函数的响应(从 Stack 上的一些答案中获得):http://pastebin .com/myT7evAx
想法是这样的:我访问 HTML 页面,里面的 jQuery 每 3 秒获取一次 PHP 页面,PHP 检查 MySQL 中的新条目;如果有新的条目,它们将打印在 PHP 页面上并由 jQuery 获取,然后附加到#messages,如果没有,则打印“NaN”(因为 JSON,没关系)。
如果没有可用的新条目,这可以正常工作:每 3 秒在页面上打印一次“NaN”;一些实时 HTTP 标头:
http://localhost/handler.class.php?Q=comments&_=1348715334458
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1
Accept: */*
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
X-Requested-With: XMLHttpRequest
Referer: http://localhost/live.html
HTTP/1.1 200 OK
Date: Thu, 27 Sep 2012 03:08:54 GMT
Server: Apache/2.2.22 (Win32) PHP/5.3.13
X-Powered-By: PHP/5.3.13
Content-Length: 15 <---- the "NaN", no new data
Keep-Alive: timeout=5, max=97
Connection: Keep-Alive
Content-Type: text/html
如果创建了新条目,则脚本停止附加“NaN”(doh,新数据),它应该附加我的新条目,但脚本停止,没有附加新数据并且它停止发出请求。这是最新的 Live HTTP Headers 日志,显示了最后一个请求:
http://localhost/handler.class.php?Q=comments&_=1348715337473
GET /handler.class.php?Q=comments&_=1348715337473 HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1
Accept: */*
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
X-Requested-With: XMLHttpRequest
Referer: http://localhost/live.html
HTTP/1.1 200 OK
Date: Thu, 27 Sep 2012 03:08:57 GMT
Server: Apache/2.2.22 (Win32) PHP/5.3.13
X-Powered-By: PHP/5.3.13
Content-Length: 3257 <-- new data, so it got the response, but stopped here. no appending, no more requests.
Keep-Alive: timeout=5, max=96
Connection: Keep-Alive
Content-Type: text/html
handler.class.php?Q=comments
返回新数据时为什么会停止?