在我的基于ajax的应用程序中,特别是一个GWT应用程序,它有div
s,隐藏了索引HTML上的脚本。这是在应用完全加载时重新定位的广告。这种方法的问题在于,在应用程序完全加载之前首先获取广告脚本,从而导致延迟效果或缓慢加载应用程序。
有没有办法延迟在这些div中加载这些脚本,以便应用程序可以首先正常加载,并且在完成页面加载之前,用户体验可能不会受到脚本提取及其执行的影响?
e.g。
<script src="gwtapp.nocache.js"/>
<div id="ad1">
<script>...</script>
</div>
在我的应用中,还有很少的div需要延迟。有没有办法让jQuery使div还没有加载,只是在时间准备就绪时以编程方式触发它。
答案 0 :(得分:1)
您可以使用jQuery .ready() - 将.js文件中的所有内容都放到此函数中。像这样:
$(document).ready(function() {
//code here
});
Function .ready()等待完整的DOM树加载和创建。
答案 1 :(得分:1)
正如CorwinCZ所提到的,你可以使用ready function。并使用 jQuery.getScript()使用GET HTTP请求从服务器加载JavaScript文件,然后执行它。
$(function() {
$.getScript( "gwtapp.nocache.js" )
.done(function( script, textStatus ) {
console.log( textStatus );
})
.fail(function( jqxhr, settings, exception ) {
console.log( "ERROR" );
});
});