我只是想知道当数据库在某种变化时是否可以用jQuery或AJAX重新加载当前页面?如果可以,我如何在我的网站上实现它?
证明我的意思:让我们说一位访客位于网站的首页。当我发布一个新的博客帖子时,访问者在页面上闲置。当页面在数据库中看到新的博客帖子时,页面将使用jQuery或AJAX重新加载,并显示访问者的新帖子。 Simliar函数是setTimeout()
,但如果我在同一页面上有100个活跃访问者,我不想强调服务器。
提前致谢。
答案 0 :(得分:1)
在页面上设置javascript var MyItemID = get_file_contents(notice.html)
,对setTimeout()
的请求内容使用notice.html
,并将结果与您的MyItemID
每当您更新数据库时,都会通过mysql_insert_id()
获取最大条目的ID,并将其放入notice.html
。
很简单,是吗? ;)
答案 1 :(得分:0)
AFAIK你不能让服务器在服务器事件上通过HTTP推送到客户端(我可能在这里错了),如果你的客户支持它,你可以使用SPDY protocol(我认为只有Chrome浏览器支持) )。
所以你唯一能做的就是检查最新记录是否与pageload上的记录相同。您必须每X秒/分钟检查一次服务器。
你可以通过这样做来实现这一目标:
服务器唯一需要做的事情(每个客户端每个X秒)是在数据库中查询最新记录并输出它。您还可以检查服务器(更多服务器负载)或通过JSON(也更多服务器负载)输出它。
如果没有这些检查,我认为你无法做到。
答案 2 :(得分:0)
设置javascript
var MyItemID = get_file_contents(notice.html)
在页面上,对setTimeout()
的请求内容使用notice.html
,并将结果与MyItemID
每次更新数据库时,都会通过mysql_insert_id()
获取最高条目的ID,并将其放入notice.html
。