【发布时间】:2013-07-11 20:53:10
【问题描述】:
我的应用程序通过 AJAX/JSONP 加载 HTML 和 JavaScript 而不是通过标准方式加载页面。它在 Iframe 中工作,因此,这是与父 Frame 保持通信的正确方式(Safari 限制)。
我必须提出 2 个请求:为自定义页面加载 JavaScript 和 HTML。为了确保一切正常,我可以先加载 JavaScript 然后加载 HTML(在 JavaScript onload 回调中)。但我希望同时发送这两个请求。
我准备了代码。当 JavaScript 和 HTML 都已加载时,脚本必须调用 _finishLoading()。 _finishLoading() 函数是否可能不会在浏览器中执行?
function Loader()
{
this.load = function()
{
// ...some code here...
var this_ = this;
var jsLoaded = false;
var htmlLoaded = false;
$.ajax(
url: newUrl,
dataType: "jsonp",
jsonpCallback:
function()
{
$.ajax(
url: someUrl,
dataType: "html",
success:
function( data )
{
$( '#' + contentElId ).html( data );
if( htmlLoaded )
{
this_._finishLoading()
}
jsLoaded = true;
}
);
}
);
$.ajax(
{
url: someUrl2,
dataType: "html",
success:
function( data )
{
$( '#' + contentElId ).html( data )
if( jsLoaded )
{
this_._finishLoading()
}
htmlLoaded = true;
}
}
);
}
}
更新。
我需要加载 JavaScript、HTML,然后调用 onload() 来初始化加载的 Javascript。 如果您知道更方便的方法,请单独加载它们,请告诉我。
【问题讨论】:
标签: javascript html ajax iframe jsonp