Image JQuery反复加载图像
我有一个用于PC的基本远程控制API,它通过AJAX(移动鼠标、单击、发送键等)接受命令。它还为指定屏幕提供图像 该API有一个前端,主要由jQuery驱动 我有一个Image JQuery反复加载图像,image,jquery,Image,Jquery,我有一个用于PC的基本远程控制API,它通过AJAX(移动鼠标、单击、发送键等)接受命令。它还为指定屏幕提供图像 该API有一个前端,主要由jQuery驱动 我有一个img标签,显示当前所选屏幕的截图,并有鼠标移动/点击事件,这些事件在幕后调用适当的API 屏幕图像当前更新如下: function UpdateScreen() { $("#Screenshot").attr("src", "./AJAX/UI/GetScreen.aspx?Screen=" + encod
img
标签,显示当前所选屏幕的截图,并有鼠标移动/点击事件,这些事件在幕后调用适当的API
屏幕图像当前更新如下:
function UpdateScreen() {
$("#Screenshot").attr("src", "./AJAX/UI/GetScreen.aspx?Screen=" + encodeURIComponent(targetScreen) + "&Date=" + encodeURIComponent(Date()));
setTimeout('UpdateScreen()', 3000);
}
这工作正常,但效率低得离谱-要么在不到3秒的情况下加载图像,要么我的刷新率低于应有的刷新率,要么在超过3秒的情况下,旧请求被终止(如移动2G)
如何在图像加载完成后立即重新加载图像?更好的是,有没有什么方法可以像AJAX调用一样,而不是依赖于浏览器?这样,我可以捕捉失败,有一个进度条,还可以控制图像重画的方式(使用类似于后台缓冲区的东西)
提前感谢使用本机Javascript
图像
对象,等待onload启动,然后再设置超时
function UpdateScreen() {
var img = new Image();
img.onload = function() {
$("#Screenshot").attr("src", this.src);
setTimeout(UpdateScreen, 3000);
}
img.src = "./AJAX/UI/GetScreen.aspx?Screen=" + encodeURIComponent(targetScreen) + "&Date=" + encodeURIComponent(new Date());
}
使用本机Javascript
Image
对象并等待onload启动,然后再设置超时
function UpdateScreen() {
var img = new Image();
img.onload = function() {
$("#Screenshot").attr("src", this.src);
setTimeout(UpdateScreen, 3000);
}
img.src = "./AJAX/UI/GetScreen.aspx?Screen=" + encodeURIComponent(targetScreen) + "&Date=" + encodeURIComponent(new Date());
}
在图像上使用加载事件。i、 e:
$("#Screenshot").load(UpdateScreen);
function UpdateScreen(){
$("#Screenshot").attr("src", "./AJAX/UI/GetScreen.aspx?Screen="
+ encodeURIComponent(targetScreen) + "&Date=" + encodeURIComponent(Date()));
}
在图像上使用加载事件。i、 e:
$("#Screenshot").load(UpdateScreen);
function UpdateScreen(){
$("#Screenshot").attr("src", "./AJAX/UI/GetScreen.aspx?Screen="
+ encodeURIComponent(targetScreen) + "&Date=" + encodeURIComponent(Date()));
}
试试这个
function UpdateScreen() {
var imgSrc = "./AJAX/UI/GetScreen.aspx?Screen=" + encodeURIComponent(targetScreen) + "&Date=" + encodeURIComponent(Date()),
img = new Image();
img.onload = function() {
$("#Screenshot").attr("src", img.src );
setTimeout(UpdateScreen, 3000);
};
img.src = imgSrc;
}
试试这个
function UpdateScreen() {
var imgSrc = "./AJAX/UI/GetScreen.aspx?Screen=" + encodeURIComponent(targetScreen) + "&Date=" + encodeURIComponent(Date()),
img = new Image();
img.onload = function() {
$("#Screenshot").attr("src", img.src );
setTimeout(UpdateScreen, 3000);
};
img.src = imgSrc;
}
我喜欢此解决方案的简单性,因此+1,但将授予不同的海报,因为使用
图像
对象会给我额外的控制权。我喜欢此解决方案的简单性,因此+1,但将授予不同的海报,因为使用图像
对象会给我额外的控制权。感谢-唯一我同意乔希的原因是他回答得稍微快一点。谢谢——我同意乔希的唯一原因是他回答得稍微快一点