如何解决等待所有图像加载jquery ajax / jquery pjax
| 这是我正在尝试做的事情的摘要$.pjax = function( options ) {
var $container = $(options.container),success = options.success || $.noop
// We don\'t want to let anyone override our success handler.
delete options.success
// We can\'t persist $objects using the history API so we must use
// a String selector. Bail if we got anything else.
if ( typeof options.container !== \'string\' )
throw \"pjax container must be a string selector!\"
var defaults = {
timeout: 650,push: true,replace: false,// We want the browser to maintain two separate internal caches: one for
// pjax\'d partial page loads and one for normal page loads. Without
// adding this secret parameter,some browsers will often confuse the two.
data: { _pjax: true },type: \'GET\',dataType: \'html\',beforeSend: function(xhr){
$container.trigger(\'start.pjax\')
xhr.setRequestHeader(\'X-PJAX\',\'true\')
},error: function(){
window.location = options.url
},complete: function(){
$container.trigger(\'end.pjax\')
},success: function(data){
// If we got no data or an entire web page,go directly
// to the page and let normal error handling happen.
if ( !$.trim(data) || /<html/i.test(data) )
return window.location = options.url
// Make it happen.
// i think im not getting it right.
$(window).load(
function() {
$container.html(data)
}
);
就像要求jQuery在执行某些操作之前等待所有图像加载的官方方式,但在jquery ajax请求之后才执行。
正如您在底部的ѭ1处看到的那样,我试图在html(data)中的所有图像准备就绪后返回html(data),我们可以以某种方式做到这一点吗?
谢谢!
亚当·拉玛丹(Adam Ramadhan)
解决方法
我相信您必须在浏览器开始加载任何图像之前将加载的HTML插入DOM。您应该能够将其插入到隐藏的(
display:none
)div中,并在该隐藏的div上设置.load()
回调。
此插件改进了.load()
事件,以便在加载图像时更一致地触发它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。