我正在开发一个项目,并希望每次将新记录添加到MySQL DB中的特定表时都会收到通知。我希望每次添加新记录时都会显示一个小弹出窗口,但不刷新页面。我听说AJAX是要走的路,但我对它并不熟悉。
答案 0 :(得分:3)
不,它不会。数据库不会告诉您何时插入记录。您可以使用AJAX向服务器发送请求。然后,该服务器可以查询更改。它可以发送指示是否存在更改的响应。然后,AJAX请求的响应处理程序可以相应地显示消息。
但实现这一点会对Web服务器和数据库服务器造成相当大的负担。所以如果你这样做,明智地选择时间。不要每秒执行此程序10次,否则一旦遇到100个访问者就会终止服务器。
要解决您的问题,请将其分解为两部分: 1.获取实际的AJAX请求。让服务器返回虚拟值并尝试正确处理它们。提示:使用JQuery.ajax(甚至是JQuery.get)来缓解你的生活。 2.让服务器查询更改。如果要监视单个表,可以轻松完成。如果您还没有时间戳列,请将其添加到表中。您可以对其进行配置,以便每次更新表时都会更新它。然后,查询最高时间戳。不要忘记为该列添加索引!
您也可以尝试其他解决方案。添加一个触发器,在另一个表中更改日期/时间。这样,轮询只需要查询该单列而不是'max'查询。
为了正确处理更改,我认为最好让Javascript保持最后一个时间戳。在响应中发回时间戳。 Javascript可以将时间戳与上一个时间戳进行比较,并在需要时显示消息。这样,您就不需要在会话中保留时间戳。