我有一些用于不同页面的javascript函数最好在document.ready函数中调用所有这些函数(比如20个函数).E.g
function functionforpage1(){
//do something on page1
}
function functionforpage2(){
//do something on page2
}
function functionforpage3(){
//do something on page3
}
......直到功能20
我称之为
$(document).ready(function(){
functionforpage1();
functionforpage2();
functionforpage3()
functionforpage4()
................
functionforpage20()
})
这是可取的吗?它是否会对页面的性能产生影响,因为如果我加载第20页,它必须在执行功能20之前运行1-19中的所有功能。如果不明智,那么最好的方法是什么?
答案 0 :(得分:1)
最好让您的代码确定哪些功能与页面相关,并且只调用它们。例如,可能让您的主JavaScript根本不使用ready
,然后在每个页面上只有一个小的内联script
块,只调用相关的:
<!-- On page 3 -->
<script src="your-main-script.js"></script>
<script>
$(document).ready(functionforpage3);
</script>
但假设函数早期发现它们不相关(例如,一个简单的DOM查询),调用~20个函数,每个函数执行一个DOM查询,其中19个函数停止,因为它们看到它们没有找到他们正在寻找的东西不会引起任何明显的问题。让它们尽早并迅速失败。