Javascript和jquery名称空间
目前,我有一大堆html+php文件,每个文件中都有$(document).ready函数 我相信要做的就是将尽可能多的JS整理成一个文件,并且我需要为函数命名名称空间 因此,如果我有一个名为product_edit的php文件,那么我将执行以下操作:Javascript和jquery名称空间,javascript,jquery,namespaces,Javascript,Jquery,Namespaces,目前,我有一大堆html+php文件,每个文件中都有$(document).ready函数 我相信要做的就是将尽可能多的JS整理成一个文件,并且我需要为函数命名名称空间 因此,如果我有一个名为product_edit的php文件,那么我将执行以下操作: <script type="text/javascript"> $(document).ready(function(){ productActions.documentReady(); }); &
<script type="text/javascript">
$(document).ready(function(){
productActions.documentReady();
});
</script>
第一:我这样做对吗?这一总体方法正确吗……还是毫无意义
第二:我的站点脚本文件似乎被缓存了,所以每次对其进行任何更改时,我都必须清除浏览器缓存。有什么快速的方法可以解决这个问题吗?1-你的方向是正确的 2-ctrl+F5执行“硬刷新”,再次下载所有资源
1-你的方向是正确的 2-ctrl+F5执行“硬刷新”,再次下载所有资源
不需要用额外的函数来包装它(正如评论员所说) 有很多不同的方法来处理缓存。例如,您可能希望在保存文件时在文件上添加时间戳(我们在构建脚本中自动执行此操作),然后应用,以便只下载一次 另外,对于名称空间,在所有CAP中都有一个全局名称空间是非常常见的做法。我在I.TV工作,我们做了如下工作:
var productActions = {
documentReady: function() {
$('#date').change(function() {
someGlobalFunction();
productActions.getTerms();
});
$('#product_id').change(function() {
productActions.getTerms();
});
},
getTerms: function() {
//do something here
}
};
window.ITV = {pages:{}}
ITV.pages.tvListings = {
init: function() { } // basic init for page
prop1: "bla bla bla"
}
然后我们可以做一些想象,在您的php中做类似的事情,这在您的所有页面中都是完全可重用的:
var pageName = "<?= $pageName ?>";
if (ITV.pages[pageName]) $(document).ready(ITV.pages[pageName].init);
var pageName=”“;
if(ITV.pages[pageName])$(document).ready(ITV.pages[pageName].init);
无需将其包装在一个额外的函数中(正如评论员所说)
有很多不同的方法来处理缓存。例如,您可能希望在保存文件时在文件上添加时间戳(我们在构建脚本中自动执行此操作),然后应用,以便只下载一次
另外,对于名称空间,在所有CAP中都有一个全局名称空间是非常常见的做法。我在I.TV工作,我们做了如下工作:
var productActions = {
documentReady: function() {
$('#date').change(function() {
someGlobalFunction();
productActions.getTerms();
});
$('#product_id').change(function() {
productActions.getTerms();
});
},
getTerms: function() {
//do something here
}
};
window.ITV = {pages:{}}
ITV.pages.tvListings = {
init: function() { } // basic init for page
prop1: "bla bla bla"
}
然后我们可以做一些想象,在您的php中做类似的事情,这在您的所有页面中都是完全可重用的:
var pageName = "<?= $pageName ?>";
if (ITV.pages[pageName]) $(document).ready(ITV.pages[pageName].init);
var pageName=”“;
if(ITV.pages[pageName])$(document).ready(ITV.pages[pageName].init);
第二个问题是在开发过程中使用web开发者工具栏并禁用缓存。如果希望在客户端每次打开页面时更新javascript文件,只需在将js文件附加到html时执行以下操作:
<script type="" src="some.js?var=somerandvars" />
第二个问题是在开发过程中使用web开发者工具栏并禁用缓存。如果希望在客户端每次打开页面时更新javascript文件,只需在将js文件附加到html时执行以下操作:
<script type="" src="some.js?var=somerandvars" />
我不知道有什么缺点(如果有的话),但是你可以1)直接将函数传递给.ready
,2)对于你的缓存问题,只需将?v2
等附加到JavaScript文件的URL以诱使浏览器重新蚀刻它。我不知道缺点(如果有的话),但是,您可以1)将函数直接传递给.ready
,2)针对缓存问题,只需将?v2
等附加到JavaScript文件的URL,以诱使浏览器重新蚀刻它。