Javascript ajax加载所有DOM元素后如何加载函数
我有一个函数的问题,应该在所有内容准备好后加载。 我有一个巨大的ajax调用1700行代码 我的代码是如何工作的:php文件从数据库中的3个表中获取数据并将其转换为JSON。我打开JSON文件并为1个数据库结果创建1个元素 现在,我有大约100个结果,但在最后一步,我将有大约1000个。因此,我创建加载,以便在加载页面之前放置。但由于主要内容是由js创建的,有时我的加载会在加载内容前1-2秒消失。我可以使用js或jquery。现在,我用的是这样的东西:Javascript ajax加载所有DOM元素后如何加载函数,javascript,jquery,Javascript,Jquery,我有一个函数的问题,应该在所有内容准备好后加载。 我有一个巨大的ajax调用1700行代码 我的代码是如何工作的:php文件从数据库中的3个表中获取数据并将其转换为JSON。我打开JSON文件并为1个数据库结果创建1个元素 现在,我有大约100个结果,但在最后一步,我将有大约1000个。因此,我创建加载,以便在加载页面之前放置。但由于主要内容是由js创建的,有时我的加载会在加载内容前1-2秒消失。我可以使用js或jquery。现在,我用的是这样的东西: $(window).on ('load',
$(window).on ('load', function (){
setTimeout(function (){
$("#loading").fadeOut('slow');}, 1000)});
一旦通过AJAX接收到数据,就执行该函数。检查下面的代码片段
$.ajax({
url: '/URL/TO/CODE',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') //This is optional if you are using x-csrf-token validation of if u want to pass any header data
},
type: "post",
data: {
data:data //In case if you need to pass any data
},
dataType: 'json',
cache: false,
before:function(){
//Is you want to show any loader or anything while ajax is being executed.
},
success: function (response) {
//Once your ajax is success you can call your custom function to do things with the data
myCustomFunction();
},
error: function (res) {
console.log(res);
}
});
function myCustomFunction(){
//This to be executed when all data are filled by ajax and page is loaded
}
希望这能有所帮助。你到底在等什么?window.onload本质上你正在做的事情在页面加载后会触发-如果你想等待窗口加载,为什么你需要等待更长的时间?你可以这样做,但是。。。在测试页面时,加载会在ajax创建dom元素之前隐藏,因此有1秒的时间我们有空页面哦,所以您在等待ajax完成-您在问题代码中没有显示任何ajax。。。ajax通常有一个成功的回调-做你需要做的事情,你通常。。。我正在使用ajax读取文件。。。因此,我的代码看起来非常类似var xhttp=newxmlhttprequest;xhttp.onreadystatechange=函数{如果this.readyState==4&&this.status==200{我的代码在这里};xhttp.openGET,somefile.php,true;xhttp.send;}在问题a有意义,b有可读性的地方,请把你的答案格式化,并给出更好的解释。这对我一点帮助都没有。你只需改变暂停时间。你们需要知道,未来的一切都取决于用户的互联网连接。它将帮助其他有类似问题的人。但我不确定在我的ajax代码上使用什么:var xhttp=new XMLHttpRequest;xhttp.onreadystatechange=函数{如果this.readyState==4&&this.status==200{我的代码在这里};xhttp.openGET,ajax_file.php,true;xhttp.send;}在我这里的代码中使用它-注意,您将问题标记为jquery,因此很自然地假设您使用jquery ajax-这就是为什么在我知道的问题中发布与您的问题相关的代码很重要。但我不知道我需要在ajax调用中加入这种函数。。。那么我可以把它放在xmlhttp.send之后吗?
$(window).ready(function (){
setTimeout(function(){ $("#loading").fadeOut('slow'); }, 3000);
});