我的不同网站的网页应该只加载一个.js文件进行缓存优化。 加载文件时出现问题。它将每个页面上的监听器应用于表单元素(例如),因此,只有最后一页的表单就像它应该的那样,其他页面不会导致它们的操作被覆盖。
所以我的问题是,我怎么能说这个脚本只适用于这个站点的重要监听器。
我正在使用jQuery框架。
答案 0 :(得分:4)
您对浏览器进行优化的尝试与您不同的逐页行为相冲突。我不会把它全部塞进一个js文件中。考虑可维护性,模块化。
您可以将公共/共享代码放入一个js文件中,并将其包含在所有页面中。浏览器仍会将其全部缓存,如果仅检查自上次获取后是否已修改,则只需要发出额外请求。但至少你的理智仍将受到控制。
但无论如何,这是答案:
第1页:
<body id="page1">...</body>
第2页:
<body id="page2">...</body>
等。当您将行为附加到第1页时,现在在monster.js
中:
$(document).ready(function() {
if(this.body.id != 'page1')
return;
// proceed as before
})
对于将行为附加到第2页元素的部分相同:
$(document).ready(function() {
if(this.body.id != 'page2')
return;
// proceed as before
})
等
答案 1 :(得分:2)
您可以按body#id
:One JS File for Multiple Pages
答案 2 :(得分:0)
使用简单的ID(例如“page1”和“page2”)将每个页面包装在不同的div中。然后在你的javascript中使用ids抓取元素:
$('#page1 div').show();
$('#page2 div').hide();
这将显示第1页上的所有div并在第2页上隐藏它们。