予装载由服务器端PHP脚本(图表)所产生的PNG图像使用以下JS代码的HTML IMG-元件<img id="chart">
:的Gif装载机同时加载重PNG图像
$('#chart').attr('src', 'chart.php');
的PNG图像生成和下载大约需要1秒钟,所以我想在图像加载时显示gif加载器。如何用JS实现这个功能?
予装载由服务器端PHP脚本(图表)所产生的PNG图像使用以下JS代码的HTML IMG-元件<img id="chart">
:的Gif装载机同时加载重PNG图像
$('#chart').attr('src', 'chart.php');
的PNG图像生成和下载大约需要1秒钟,所以我想在图像加载时显示gif加载器。如何用JS实现这个功能?
$('#chart').attr('src', 'chart.php').load(function(){
//something
});
非常感谢!我已经这样实现它:'$('#ajax-loader')。attr('src','ajax-loader.gif'); $('#chart')。hide(); $('#chart')。attr('src',linkUrl).load(function(){('#ajax-loader')。hide(); $('#chart')。show() ;});' – zavg 2013-04-23 15:41:16
如果浏览器缓存它,你可以添加一些东西到查询字符串来打破它。无论哪种方式,你要听的图像的load
事件,这应该之前设置的约束其src
(如果它的缓存):
var target_url = 'chart.php?_=' + (new Date()).getTime();
// Show "loading"
$('#chart').on("load", function() {
// Hide "loading"
}).attr('src', target_url);
参考:
请注意该参考底部附近的提示,指的是使用图像时的事件:
对于平衡图像,这是非常简单的纯JS做:
var preload = function(element, src) {
var img = new Image();
// Apply onload before applying src attribute to avoid IE prematurely firing
img.onload = function() {
// Replace #chart with image
element.parentNode.replaceChild(img, element);
};
img.src = src;
}
preload(document.getElementById('chart'), 'chart.php?_...');
顺便说一句,你显示的代码是jQuery语法,而不是JavaScript,但是你的问题中没有jQuery标记。那么你想要一个JavaScript或jQuery的答案? – Xotic750 2013-04-23 15:55:39