Javascript和jquery名称空间

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(); }); &

目前,我有一大堆html+php文件,每个文件中都有$(document).ready函数

我相信要做的就是将尽可能多的JS整理成一个文件,并且我需要为函数命名名称空间

因此,如果我有一个名为product_edit的php文件,那么我将执行以下操作:

<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,以诱使浏览器重新蚀刻它。