Jquery 在数据库发生更改时加载页面-可能吗?

Jquery 在数据库发生更改时加载页面-可能吗?,jquery,ajax,database,reload,Jquery,Ajax,Database,Reload,我只是想知道,当数据库发生某种变化时,是否可以用jQuery或AJAX重新加载当前页面?如果这是可能的,我如何在我的网站上实现它 演示我的意思:假设一个访问者位于网站的首页。当我发布一篇新的博客文章时,访问者只是在页面上闲着。当页面在数据库中看到新的blogpost时,使用jQuery或AJAX重新加载,并向访问者显示新的帖子。与此类似的函数是setTimeout(),但如果同一页面上有100个活动访问者,我不想强调服务器 提前感谢。AFAIK您不能让服务器在服务器事件上通过HTTP推送到客户端

我只是想知道,当数据库发生某种变化时,是否可以用jQuery或AJAX重新加载当前页面?如果这是可能的,我如何在我的网站上实现它

演示我的意思:假设一个访问者位于网站的首页。当我发布一篇新的博客文章时,访问者只是在页面上闲着。当页面在数据库中看到新的blogpost时,使用jQuery或AJAX重新加载,并向访问者显示新的帖子。与此类似的函数是
setTimeout()
,但如果同一页面上有100个活动访问者,我不想强调服务器


提前感谢。

AFAIK您不能让服务器在服务器事件上通过HTTP推送到客户端(我可能错了),如果您的客户端支持,您可以使用(我认为只有chrome浏览器支持)

因此,您唯一能做的就是检查最新记录是否与pageload上的记录相同。您必须每X秒/分钟检查一次服务器

您可以通过这样做来实现这一点:

  • 在pagerequest中,将最新记录的ID存储在页面上的某个位置(例如隐藏输入)
  • 编写一个小服务器脚本,仅返回最新记录的ID(普通)
  • 在客户机上比较它们,如果它们不匹配,则对新内容执行完整的ajax请求
  • 服务器需要做的唯一一件事(每个客户端每X秒)是查询数据库中的最新记录并将其输出。您还可以检查服务器(更多服务器负载)或通过JSON输出(更多服务器负载)


    我认为如果没有这些检查,你是无法做到的。

    设置javascript
    var MyItemID=get\u file\u contents(notice.html)
    在页面上,使用
    setTimeout()
    notice.html
    请求内容,并将结果与
    MyItemID
    进行比较

    每次更新数据库时,通过
    mysql\u insert\u ID()
    获取max entry的ID,并将其放入
    notice.html

    很简单,是吗?;)

    设置javascript

    var MyItemID = get_file_contents(notice.html)
    
    在第页上,使用
    setTimeout()
    查看
    notice.html
    中的请求内容,并将结果与您的
    MyItemID


    每次更新数据库时,通过
    mysql\u insert\u ID()
    获取max entry的ID,并将其放入
    notice.html

    好问题。我想知道stackoverflow是如何利用他们的“新答案”更新的!希望我们能找到这个函数的答案。举个例子。@MichaelMior谢谢:)我会的!