gpt4 book ai didi

javascript - AJAX 获取的 HTML 完全加载后加载 Javascript

转载 作者:行者123 更新时间:2023-12-03 10:10:35 24 4
gpt4 key购买 nike

我遇到过这样的情况:使用 ma​​in.js 脚本将 HTML 部分通过 AJAX 加载到 ID=“动态内容”的 DIV 中。该脚本位于 ma​​in.php 的 HEAD 部分,如下所示:

$.ajax({
url: 'content.php',
success: function(output){

$('#dynamic-content').html(output);
}
});

负责控制该内容的 Javascript 文件位于另一个名为 secondary.js 的 JS 文件中。该文件再次放置在 ma​​in.php 内 BODY 关闭之前。

main.php文档结构:

<html>
<head>
<script type="text/javascript" src="js/main.js"></script>
</head>

<body>
....
<div id="dynamic-content"></div>
....
....
<script type="text/javascript" src="js/secondary.js"></script>
</body>
</html>

有时content.php的内容太大,secondary.js文件在内容完全加载之前加载。因此,有些元素没有针对性,我遇到了问题。

有没有办法让 secondary.js 的执行延迟 1-2 秒,以确保内容完全加载?

ps:以上所有文件都托管在同一服务器上

提前致谢。

最佳答案

您想要实现的是异步行为。无论 secondary.js 做什么,都将其放入函数中并在 ajax 回调中调用它。如果这样做,您甚至不需要两个 JavaScript 文件。

不要尝试通过超时或加载顺序来管理此问题。这不会是万无一失的。您无法知道浏览器加载您的内容所需的确切时间。例如,如果您的互联网连接速度非常慢怎么办?不要试图预测这些事情,这就是回调的用途:-)

您的代码可能如下所示:

function doSthWithLoadedContent() {
// whatever secondary.js tries to do
}

$.ajax({
url: 'content.php',
success: function(output){
$('#dynamic-content').html(output);
doSthWithLoadedContent();
}
});

关于javascript - AJAX 获取的 HTML 完全加载后加载 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30132192/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com