使用JavaScript在页面完全加载后执行代码
我花了几个小时试图让下面的代码正常工作。 应暂停代码,直到加载页面。我遇到的问题是AJAX是异步执行的。如何强制代码在执行之前等待使用JavaScript在页面完全加载后执行代码,javascript,jquery,ajax,Javascript,Jquery,Ajax,我花了几个小时试图让下面的代码正常工作。 应暂停代码,直到加载页面。我遇到的问题是AJAX是异步执行的。如何强制代码在执行之前等待 var i = 1; function On_Success(){ i = i+1; if(i<=10){ $('<div id="p'+i+'">b</div>').replaceAll('#b'); $('#p'+i).load('tabelle.html'); //here shoul
var i = 1;
function On_Success(){
i = i+1;
if(i<=10){
$('<div id="p'+i+'">b</div>').replaceAll('#b');
$('#p'+i).load('tabelle.html');
//here shoul be waited, til the page is loaded
On_Success();
};
};
function knopf(){
$('body').append('<div id="p'+i+'">a</div>');
$('#p'+i).load('tabelle.html');
On_Success();
};
var i=1;
_Success()上的函数{
i=i+1;
如果(i接受加载完成时运行的回调,则可以使用此函数而不是更详细的函数,这将需要编写额外的代码来填充元素
jQuery("#p", i).load("tabelle.html", function() {
//code to run when tabelle.html has finished loading
});
将代码更改为以下内容。它应该可以工作:
var i = 1;
function On_Success() {
i = i + 1;
if (i <= 10) {
$('<div id="p' + i + '">b</div>').replaceAll('#b');
$('#p' + i).load('tabelle.html', On_Success);
};
};
function knopf() {
$('body').append('<div id="p' + i + '">a</div>');
$('#p' + i).load('tabelle.html', On_Success);
};
var i=1;
_Success()上的函数{
i=i+1;
如果(i接受加载完成时运行的回调,则可以使用此函数而不是更详细的函数,这将需要编写额外的代码来填充元素
jQuery("#p", i).load("tabelle.html", function() {
//code to run when tabelle.html has finished loading
});
将代码更改为以下内容。它应该可以工作:
var i = 1;
function On_Success() {
i = i + 1;
if (i <= 10) {
$('<div id="p' + i + '">b</div>').replaceAll('#b');
$('#p' + i).load('tabelle.html', On_Success);
};
};
function knopf() {
$('body').append('<div id="p' + i + '">a</div>');
$('#p' + i).load('tabelle.html', On_Success);
};
var i=1;
_Success()上的函数{
i=i+1;
if(iAjax和load都有一个onsuccesss
函数,当响应完全返回时可以运行该函数
$.ajax({
async: true,
type: "GET",
url: url,
data: params,
success: function(html){
//do stuff here
},
error: handleAjaxErrors
});
如果要使用load,还存在一个成功回调:
$("#myDiv").load('/ajax/data/get', function() {
//do stuff here
});
Ajax和load都有一个onsuccesss
函数,当响应完全返回时可以运行该函数
$.ajax({
async: true,
type: "GET",
url: url,
data: params,
success: function(html){
//do stuff here
},
error: handleAjaxErrors
});
如果要使用load,还存在一个成功回调:
$("#myDiv").load('/ajax/data/get', function() {
//do stuff here
});
加载函数有一个成功处理程序:
$('#p'+i).load('tabelle.html', function() {
On_Success();
});
成功处理程序仅在ajax调用成功完成后,以及在提供的内容添加到DOM中后调用
您可以在此处查看完整的文档:
如果还希望捕获客户端上的错误条件,则需要根据@Chris的回答使用完整的$.ajax
调用。加载函数有一个成功处理程序:
$('#p'+i).load('tabelle.html', function() {
On_Success();
});
成功处理程序仅在ajax调用成功完成后,以及在提供的内容添加到DOM中后调用
您可以在此处查看完整的文档:
如果您还想捕获客户端上的错误条件,您需要根据@Chris的回答使用完整的$.ajax
调用。最初的问题是“页面加载”,而不是加载函数。我编辑了我的答案。我仍然遇到同样的问题,代码继续运行,没有等待,现在它工作了,我已经删除了“()”在On_Success调用之后,你知道为什么吗?@nadeshcda原因是load
接受回调。当你在On_Success
之后添加()
时,它实际上调用了函数。你想做的是传递一个引用,这就是当你省略()
时你正在做的事情。最初的问题是“页面加载”不是为了加载函数。我已经编辑了我的答案。我仍然遇到同样的问题,代码继续运行,没有等待现在它工作了,我在on_成功调用后删除了“()”,你知道为什么吗?@nadeshcda原因是load
接受回调。当你添加()
在_Success
上的之后,它实际上调用了该函数。您要做的是传递一个引用,这就是您在忽略()
时所做的。