使用 jQuery 和 AJAX 从 SQL 数据库中检索数据。我正在考虑使用 jqGrid(如果可能的话)。检索数据时,根据其优先级和是否必须确认,它可以在每行显示 3 个选项中的 1 个:下拉框(要求用户在其中选择一个选项),提交按钮(确认已收到),或者它可以说“不需要”。一般来说,它看起来像下图:
AJAX 调用是有间隔的,每 30 秒刷新一次。
必须发生的是当用户单击/选择它们时需要操作的项目,将更新数据源并使用他们的响应和他们响应的日期时间更新行。
可以有多行带有下拉框,也可以有多行带有提交按钮。一旦某个项目得到响应(或者如果什么都不需要),该消息将在下一次刷新时消失(被过滤掉)。
其他信息 - 下拉列表中的项目对于每一行都是相同的。此外,如果用户打开了下拉菜单,则间隔将停止,然后在做出选择后重新开始(下拉框打开时网格不应刷新)。
可以使用 jqGrid 完成这样的事情,或者使用另一个 jQuery 插件更好/更容易地完成,还是应该在 HTML 中完成(使用 jQuery)?我会很感激任何意见。
编辑
我现在正在测试网格(仅显示数据)以查看它是如何使用setInterval
. 我使用下面的代码来设置间隔。
iLoad = setInterval(function(){
mytime = new Date();
mytime = new Date(mytime - 60000);
mytimeString = ('00'+(mytime.getHours())).slice(-2) +":"+('00' + (mytime.getMinutes())).slice(-2) + ":"+ ('00' + (mytime.getSeconds())).slice(-2) + "."+ ('000' + (mytime.getMilliseconds())).slice(-3);
var cday = new Date();
var curday = ('00'+(cday.getdate())).slice(-2);
var curmon = ('00'+(cday.getMonth())).slice(-2);
var curyr = cday.getFullYear();
var currdate = curyr +"-"+curmon+"-"+curday;
gridload(id, mytimeString, currdate);
}, 60000);
我注意到,在第一次调用它时,网格GET
在数据源上执行了 a ,但是之后,当间隔再次触发时,它并没有执行 new GET
。我放入了一些日志显示,显示它正在调用该函数,但网格代码中的显示(在 中loadComplete
)仅在第一次触发。我发送的时间是从我传递的时间参数开始要求桌面上的任何新内容,所以我期待它每次都会触发。
设置间隔的代码之前已经获取了相同的信息并将其放入 HTML 表中,所以我知道间隔正在按预期触发。
我没有设置任何东西来缓存或在网格上加载一次。我错过了什么?为什么间隔不让它对GET
数据进行后续处理?