其实像 css 或者 js 文件大小还是没关系的。 关键一个问题,应该不让 js 的脚步在所有页面都运行一遍吧。 就像找一个 class 名字的,每个页面点击都找一遍觉得不太好。
所有我把 js 都封装好,然后每个独立页面上在调用。可是发现在页面上调用不了封装好的函数,似乎浏览器会先执行 html 下的的 javascript,然后在执行.js 文件的。 <p>大家发表下意见,是怎么管理 js 文件的?</p>
#1 楼 @hooopo 意思就是, 我在.js 文件中写类或者函数
function xx(){
}
而只在 html 下的里调用 function,如 slim: <div class="highlight"><pre class="highlight plaintext"><code>javascript: jQuery(function() { xx(); } </code></pre></div> <p>这样,会出现 xx() 方法找不到。 但是如果把 javascript:下的内容放到.js 文件里,就会在所有页面执行一次 xx(),这样觉得不太好,如果内容太多,太消耗内存了。</p>
想办法判断出页面 比如在topic#show页面里写上
<script type="text/javascript" language="javascript" charset="utf-8">
//<![CDATA[
window.page_name = "topic_show";
//]]>
</script>
在 JS 文件里的$.ready 里根据 window.page_name 判断是什么页面,再运行你需要运行的 JS
在页面里单独调用 JS 方法时,记得用$.ready JS 方法调用最好在 include script 标签后面
#3 楼 @hooopo 谢谢,你说的这个方法是可行的。 #4 楼 @ashchan 恩。对。 #5 楼 @cxh116 第一次见过这个判断方法,奇怪的是怎么进行判断的,title 来判断的吗?还是文件名? #6 楼 @wity_lv 我想问一下 (function() {})() 在这个里面的函数,需要通过什么来调用?如:
(function() {
var total_amount;
total_amount = function() {
var total;
total = 0;
alert(total)
};
}).call(this);
total_amount() //似乎无法调用
(function() { window.total_amount = function() { var total; total = 0; alert(total) }; }).call(this);
total_amount
@QueXuQ 我说的 JS 框架是指 Backbone.js 这样的。JQuery 应该是 Library Framework,但不是 development framework.完全不一样的东西。换句话,就是你会写 JQuery 也并不代表你会写 JS。