因此,每隔几秒钟就有一台相机拍摄图像,并在服务器上存储带有新文件名的新图像。当向“mypage”发出请求时,服务器端将加载最新图像并在响应中返回。随后使用此jQuery代码刷新图像:
(function($) {
$(function() {
var refreshInterval = 5; // Number of seconds between image refreshes
$('#deskshare-grid img').each(function() {
$(this).data('src', $(this).attr('src'));
});
function refreshImages() {
$.get('?r=' + Math.random(), function(response) {
$('#deskshare-grid img').each(function(index) {
$(this).attr('src', $(response).find('#deskshare-grid img').eq(index).attr('src'));
});
setTimeout(refreshImages, refreshInterval * 1000);
});
}
setTimeout(refreshImages, refreshInterval * 1000);
});
})(jQuery);
我共享的jQuery代码很有效,我没有编写代码,我想知道它是如何工作的。
我的想法是坚持为页面发出请求,使用C#在服务器上检索最新的图像,这些图像包含在响应中。创建更新的图像时,它具有新的文件名。
jQuery如何刷新照片以获取它不知道客户端的文件名?
特别是这部分代码令我困惑:
$.get('?r=' + Math.random(), function(response) {
这个$ .get的网址请求是什么?我看到我的F12工具的网络选项卡显示了新的图像响应,但我不明白如何使用jQuery请求具有不同文件名的图像。
更新
接受的答案是正确的,但我想详细说明。这个jQuery再次请求整个页面。 HTML响应包含来自服务器的新图像URL。 jQuery用于解析响应,获取最新的图像URL,然后使用从响应中解析出的新图像URL更新现有的HTML内容。这样,尝试刷新整个页面就没有页面闪烁。
答案 0 :(得分:2)
它确实向同一页面发出请求,Math.random()
是为了更容易查看每个请求。当您向同一页面的?
发出请求时。
答案 1 :(得分:0)
此$ .get的网址请求是什么?
$ .get中的第一个参数是相对网址。这意味着它试图访问的网址将是www.yourdomain.com/whatever?r =。
“?”表示查询字符串的开头,“r”是请求变量的开头,等号后面的任何内容是查询本身。在这种特殊情况下,查询只是一个随机生成的数字,发送到服务器。在没有看到服务器端代码的情况下,它看起来好像是在客户端上生成文件名并以这种方式发送到服务器,然后可能用于在服务器端命名文件。
答案 2 :(得分:0)
$.get('?r=' + Math.random(), function(response) {
可能是这两件事:
我建议查看每个5''来电的请求和回复标题。