如何使Ajax仅在文件更改时才刷新元素?



我有我的应用程序从服务器下载的.xspf文件。此文件内容有时会更新。如何让 Ajax 在文件内容更改后立即刷新元素?

现在我每 1 秒刷新一次。

view.py

def sign_update(request):
# get_sign() is the method that takes content of the file
artist, track = Icecast().get_sign() 
response_dict = {'artist': artist, 'track': track}
return render(
request,
'sign.html',
context=response_dict
)

sign_update.js

function sign_update() {
$.ajax({
url: "sign_update",
cache: false,
success: function(data) {
$("#sign").html(data);
}
});
}
$(document).ready(function() {
sign_update();
setInterval('sign_update()', 1000);
});

你正在做的是一个拉取方法setInterval不是最好的主意,因为它在有或没有变化的情况下不断调用你的服务器,想象一下,如果你有1000个用户,每个用户每秒都会向服务器发送一个请求。

我建议您使用推送方法,例如SignalR。 这是一个聊天演示,您可以使用少量行进行

最新更新