0
对于餐馆网站,我需要使用预订模块来加载痛苦。
加载它的脚本花费高达4秒的时间,这是在我开始工作的380mb/s以太网连接上。网站需要4到6秒才能生效。在执行脚本之前等待外部动态加载的脚本加载
这是我必须执行的代码。
<div id="[reservation-company-name]-booknow">
<script type="text/javascript" src="//www.[reservation-company-name].com/WID/Widget/Cors"></script>
<script>bookNow({companyID: '[numbers]',target: '#[reservation-company-name]-booknow',language: 'NL'});</script>
</div>
保留小部件隐藏在主页上,但这仍然意味着脚本将在网页中加载。
我知道我必须在页面完全加载后动态加载脚本。
$(window).load(function() {
$("#[reservation-company-name]-booknow").append("<script type='text/javascript' src='//www.[reservation-company-name].com/WID/Widget/Cors'></script><script>bookNow({companyID: '[numbers]',target: '#[reservation-company-name]-booknow',language: 'NL'});</script>
});
问题是,第二个带bookNow函数的脚本在第一个脚本仍在加载时触发。这会导致错误,并且小部件将无法正常加载。
当我在运行第二个脚本时设置超时时,窗口小部件将加载,但使用不同的连接速度时,无法在超时设置正确的时间。
我在这里搜索了Stackoverflow关于如何等待动态加载的脚本在执行函数之前完全加载。 我发现的大多数东西都不是关于动态加载的脚本,或者是关于异步和延迟,这对我没有用。
怎么办?
仅供参考'$(window).load()'不推荐使用。使用'$(window).on('load')'。 – Barmar