+ -
当前位置:首页 → 问答吧 → jquery高手请进

jquery高手请进

时间:2010-12-31

来源:互联网

一般我们外部引入js脚本通常会放在页面最后,比如说这个一个结构
HTML code

<html>
<head>
<!--CSS一般放在头部引入-->
<title>标题</title>
</head>
<body>
<!--html内容-->
<script>//这里是页面内的js脚本</script>
<body>
<script src="...">//这里放外部引入的js脚本</script>
</html>


OK,一般我们的页面大概就是上面这个结构,问题来了,页面加载时,如果我们页面内部的js脚本需要用到比如说jquery.js的语法,但是那时还没走到下面引入外部js那一步,jquery.js还没引入,因此浏览器会报找不到对象的错误,各位高手,有什么好方法能够解决类似的问题呢?
不要简单的回答说把外部引用的js放到head里面,因为实际情况可能不止有一个js,大量的js放head里不是一个好的做法,我行内js脚本主要是$(document).ready()这样的语句,Jquery有没有办法可以手动触发此函数的,这样我就能手动控制,在保证jquery.js加载完毕后再手动调用$(document).ready() 。。

作者: leebin1986   发布时间: 2010-12-31

公共引用的而且在页面载入期间就要用到的脚本怎能放在尾部?这本身就是个错误的方法的,而且就算你有巧妙的办法能让它执行下去,你还是要等到jquery脚本都加载完了才能正确执行程序,效率一样没有提高。还是乖乖的把它放在前面吧。

作者: Michael_g   发布时间: 2010-12-31

JS脚本 封装 成 js文件  

添加引用 就行了

作者: fengyarongaa   发布时间: 2010-12-31

照这么说,楼主页面上那些“用到jquery语法的脚本”是不是也都放在页面更加靠后比较好呢?

把必须要用到的代码放在前面让其先行加载,算不算“大量”?

想要“手动触发”,那干脆就别用$(document).ready()了,直接在页面最后写脚本,绝对保证它前面的js都已经加载完毕了。

作者: CaiKanXP   发布时间: 2010-12-31

引用 1 楼 michael_g 的回复:

公共引用的而且在页面载入期间就要用到的脚本怎能放在尾部?这本身就是个错误的方法的,而且就算你有巧妙的办法能让它执行下去,你还是要等到jquery脚本都加载完了才能正确执行程序,效率一样没有提高。还是乖乖的把它放在前面吧。

感谢您的回答,上述举jquery.js也只是举个例子,照您这么说,如果行内脚本如果用到了类似datepicker,validator等等等等需要在document.ready期间就要初始化的脚本都通通需要放到header里咯?
那一般什么样的js外部脚本会放在最后呢

作者: leebin1986   发布时间: 2010-12-31

一般不建议在页面写大量的JS脚本

作者: yhtapmys   发布时间: 2010-12-31

引用 3 楼 caikanxp 的回复:

照这么说,楼主页面上那些“用到jquery语法的脚本”是不是也都放在页面更加靠后比较好呢?

把必须要用到的代码放在前面让其先行加载,算不算“大量”?

想要“手动触发”,那干脆就别用$(document).ready()了,直接在页面最后写脚本,绝对保证它前面的js都已经加载完毕了。

行内还是外部引用的js区分规则是,行内一般都是会和页面DOM元素关联的,比如和id="abc"关联的js一般都会直接放在页面中,而无关的一般都会抽离出单独的js脚本用外部加载的形式加载,jquery的一些ui组件必须要在$(document).ready()初始化。。所以也是没办法的事,因此才有了这个问题的初衷

作者: leebin1986   发布时间: 2010-12-31

一个建议的原则:
实际上无需立即用到的脚本,可以放在文档尾部,甚至是采用异步加载的方式处理。
但是必须立即用到的,被其它代码所依赖的脚本,还是老老实实的放在前面吧。

想想看,迟早都是要全部加载的(异步加载除外),只是将顺序倒来倒去的,能获得多大的性能提升呢?

作者: CaiKanXP   发布时间: 2010-12-31

热门下载

更多