我需要定期从 URL 检索 JSON 数据,并相应地更新我的页面。
我有一张桌子。每行都有一个链接,我将链接以测试其状态,例如每 20 秒。
这可以使用页面刷新元标记来实现,但我认为 ajax 会是一个更好的解决方案。
我应该使用 $.getJSON 吗?(我对 ajax/json 很陌生)
你基本上在那里。首先,这$.getJSON()
只是一个方便的方法$.ajax()
,datatype: 'json'
它是始终坚持使用的最佳实践$.ajax()
。您想setTimeout
在要异步加载的函数中调用 - 因此您将在此处使用递归。好处是您可以重复进行 AJAX 调用,但只有在前一个方法完成时,才能正常运行。一个简单的例子如下:
$(function() {
var myFunction = function() {
$.ajax({
url: '/place-for-cool-stuff',
datatype: 'json',
data: { ... data you need to send, e.g. method arguments ... }
}).done(function (data) {
... do stuff with the data you get back ...
}).fail(function (jqXHR) {
... be smart and handle failures ...
}).always(function () {
... no matter what happens do this stuff ...
setTimeout(myFunction, 20000);
});
};
});