我有一个 application.js 资产和一个 editor.js 资产。它们都具有 jquery.batchImageLoad.js 库的依赖关系。
application.js 在整个网站都可用,但 editor.js 仅在某些页面上可用,但它们有时会相遇。
问题是 jquery.batchImageLoad.js 库被加载了两次,这并不是完全可取的。
除了必须更改实际的javascript之外,有什么方法可以防止它们发生冲突?
我有一个 application.js 资产和一个 editor.js 资产。它们都具有 jquery.batchImageLoad.js 库的依赖关系。
application.js 在整个网站都可用,但 editor.js 仅在某些页面上可用,但它们有时会相遇。
问题是 jquery.batchImageLoad.js 库被加载了两次,这并不是完全可取的。
除了必须更改实际的javascript之外,有什么方法可以防止它们发生冲突?
在 application.js 和 editor.js 的两个页面中都有 jquery.batchImageLoad.js 很好,因为浏览器会缓存它,所以用户只下载一次。
我建议以不重叠的方式构建您的 js 文件和包含文件。您可以通过放弃 application.js 来做到这一点,并拥有:
您可以在任何地方包含 common.js,然后根据您的需要包含 editor.js 或everything_else.js。
如果您不想重组,您可以编写一个 include_once 函数,尽管这会使您的 javascript 包含的可预测性降低
# in application_helper
@included_javascripts = {}
def javascript_include_tag_once file
unless @included_javascripts[file]
javascript_include_tag file
@included_javascripts[file] = true
end
end