php - Tablesorter 重新加载 tbody 或仅在数据库更改/更新时重新加载该行

标签 php javascript ajax jquery tablesorter

我看过很多tablesorter的例子当用户想要在表中添加或删除行时触发更新,但我想看看它是否有可能在数据库发生变化时重新加载整行或 tbody?

这是我的想法,请告诉我这是否是个好主意。

JAVASCRIPT 和 PHP 中的设置:

1. 当页面首次加载时,脚本将获取一个 (.PHP) 页面,该页面将显示 lastUpdate(例如:'2013-07-18 10:37:29') .PHP 页面将转到数据库 (MySQL) 并获取 lastUpdate 并显示它)这个 lastUpdate 信息(日期/时间)将保存在 VAR 中以备后用。

2. 添加一个计时器,该计时器将对同一个 (.PHP) 页面执行 ping 操作,并将其 lastUpdate 与我们在首次加载页面时获得的初始 lastUpdate 进行比较。

3.我们将每隔 x 秒(可能是 10 秒)继续执行 ping 操作,以嗅探数据库中对 lastUpdate 的更改。

4.(比较):如果最初的 lastUpdate 值小于我们刚刚从数据库中获取的值,那么这意味着数据库的内容已被更改,它会做一个两种可能的事情。

从现在开始我想做的是:

选项 1: 仅删除旧行并将其替换为更新的行。 每行都有一个唯一的 ID,因此 javascript 也可以获取此 ID#,然后只更新表中的该行。

选项 2: 删除当前 Tbody,然后使用新数据重新加载整个 Tbody。

表格有很多行/列并使用图像、hrefs 等等...所以每一行都是很重的行,这就是为什么我想尽可能使用选项 1 的原因,但我不知道如何完成这最后一部分!?

(与聊天程序不同)行不必按正确的顺序排列,只要我知道数据库中哪个 ID 已更新即可。

假设我们有一个地址簿,用户可以编辑/更新、添加、删除联系人和联系信息。现在我只想扫描更改并在发现更改时发送 ID 和数据从数据库到表中的行通过ID匹配它然后更新它或删除旧的并用新的替换它,但是如果在数据库中找不到id则从表中删除id因为它不再在数据库中。

所以我可能遇到的唯一问题是不止一个用户同时进行了更改(比如在同一秒),然后只显示一个更新。但我认为这可以通过检查数据库是否有任何其他具有确切日期/时间的不同 ID 来绕过,如果有则更新它们。

非常感谢您阅读本文并感谢您为我提供的任何帮助。

最佳答案

选项 1。来回发送的数据较少。更少的渲染。

这就是我要做的:

有一个 JS setTimeout 函数和 AJAX 检查我的服务器端脚本/servlet/等等。如果有任何行与 SQL 查询匹配,我会通过 JSON 将它们发回。

返回 JSON 后,我将解析每个 JSON 对象(表行),并用新数据替换相应的 TR

关于php - Tablesorter 重新加载 tbody 或仅在数据库更改/更新时重新加载该行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17728692/

相关文章:

angularjs - 来自浏览器的 Ajax 不起作用,但来自 PostMan 的有效

javascript - 如何使用 jquery ajax 将包含 ReactJs 的页面加载到其他页面中

javascript - 英石。如果请求中已经提供了 URI 的 'path' 部分,则跳过该部分

php - 从mysql db提取数据到另一个

PHP 和 Smarty 错误 : Trying to get property of non-object

php - php 表单中的提交按钮也可以作为 anchor 吗?

javascript - Jquery 过滤表是否适合输入范围

javascript - 带有 ng-click 的 Angularjs 指令

javascript - Chrome 扩展程序 : How to send html form data to a php page upon button being clicked which redirects to said php page

php - 如何在MYSQL/SQL中查询本例的数据?