需要关于处理大型javascript文件的建议吗
我有大约2000行javascript代码用于我的应用程序。其中很多是用户交互/jQuery。别担心,一切正常:) 但是跟踪代码库变得越来越困难。所以我把这个文件分成五个文件 我认为,如果我加载所有文件,它们都驻留在内存中,并且可以相互通信。但它看起来不像。因为,在文件A中,我有需要关于处理大型javascript文件的建议吗,javascript,Javascript,我有大约2000行javascript代码用于我的应用程序。其中很多是用户交互/jQuery。别担心,一切正常:) 但是跟踪代码库变得越来越困难。所以我把这个文件分成五个文件 我认为,如果我加载所有文件,它们都驻留在内存中,并且可以相互通信。但它看起来不像。因为,在文件A中,我有var currentPage=getURLvar('slpage')
var currentPage=getURLvar('slpage')在文件B中,我有if(currentPage=='someName')
但是文件B无法识别变量currentPage
另外,我在文件C中有som通用脚本,文件A和B可以使用这些脚本。但我想这对卡尔·莱瑟来说是不可能的
任何建议都将不胜感激
更新
我的javascript开始如下:
// FILE A
jQuery(document).ready(function() {
var currentPage = getURLvar('slpage');
if ( (currentPage == 'Aa') || (currentPage == 'Bb') ) {
init_AA();
}
else if ( (currentPage == 'Cc') || (currentPage == 'Dd') ) {
init_BB();
} else if ( (currentPage == 'Ee') || (currentPage == 'Ff') ) {
init_CC();
}
(...)
// FILE B
function init_AA()
{
(...)
}
function getURLvar(name)
{
//Gets the URL and returns the value of specified paramter.
}
您是对的,可以访问其他文件中的脚本部分。你遇到的问题听起来像是范围界定的问题
如果您的变量位于全局名称空间中(这不是一个好主意),那么您可以像尝试过的那样直接访问它
或者,如果将变量的作用域限定在一个方法中,那么它也只能在该方法中访问
为了公开所需的变量,我建议为代码创建一个公共名称空间,并将单独的Javascript限定到相关名称空间中
以下是一些参考资料以获取更多信息:
更新:
根据您发布的代码,您可以简单地将变量declaration移到anonymouse函数的范围之外
var currentPage;
jQuery(document).ready(function() {
currentPage = getURLvar('slpage');
...
您是对的,可以访问其他文件中的脚本部分。你遇到的问题听起来像是范围界定的问题
如果您的变量位于全局名称空间中(这不是一个好主意),那么您可以像尝试过的那样直接访问它
或者,如果将变量的作用域限定在一个方法中,那么它也只能在该方法中访问
为了公开所需的变量,我建议为代码创建一个公共名称空间,并将单独的Javascript限定到相关名称空间中
以下是一些参考资料以获取更多信息:
更新:
根据您发布的代码,您可以简单地将变量declaration移到anonymouse函数的范围之外
var currentPage;
jQuery(document).ready(function() {
currentPage = getURLvar('slpage');
...
“currentPage”变量“live”在哪个范围内?在投入生产时,如何将它们最小化到一个文件中?@Jan-你所说的范围是什么意思@亚历克斯-当我投入生产时,我会这样做。但在我使用它的同时,当我为网站的不同部分使用不同的js文件时,它更易于管理。“currentPage”变量“活动”在什么范围内?在投入生产时,如何将它们最小化到一个文件中?@Jan-你所说的范围是什么@亚历克斯-当我投入生产时,我会这样做。但是,当我使用它时,当我为网站的不同部分使用不同的js文件时,它更易于管理。。。我想知道是否有这样的事情存在。我不知道你所说的作用域是什么意思。作用域只是指代码所具有的作用域。例如,在函数顶部声明变量意味着该函数是该变量可以使用的范围。在此函数之外,该变量不存在。我们称之为具有作用域的变量(作用域为函数)。真正要说的是“从哪里可以看到这个变量”。在您的示例中,似乎变量只能在定义它的函数中看到。其他函数没有这个作用域(无法看到变量),因为它被锁定了。请参阅上面的更新。这会让你马上站起来跑步。哼。。。我想知道是否有这样的事情存在。我不知道你所说的作用域是什么意思。作用域只是指代码所具有的作用域。例如,在函数顶部声明变量意味着该函数是该变量可以使用的范围。在此函数之外,该变量不存在。我们称之为具有作用域的变量(作用域为函数)。真正要说的是“从哪里可以看到这个变量”。在您的示例中,似乎变量只能在定义它的函数中看到。其他函数没有这个作用域(无法看到变量),因为它被锁定了。请参阅上面的更新。这会让你马上站起来跑步。