如何调用客户端库的特定 js 文件?
How can I call specific js file of a client library?
我已经将我所有的 js 文件组织到一个通用的 clientlib 类别中。例如
->etc
->designs
->myapp
-> clientlibs
-> base
-> js
-> app1.js
-> app2.js
-> app3.js
因此,当我访问 /etc/designs/myapp/clientlibs/base.js 时,它 return 是一个包含所有包含的 js 内容的大型合并 js。有没有办法从这个 base.js 访问特定的 js(比如 app2.js)。我们可以使用像 /etc/designs/myapp/clientlibs/base/js/app2.js 这样的相对路径并且它有效。
但是有没有更好的方法(也许使用像 /clientlibs/base.app2.js 这样的选择器)来 return 这个 js?
或者这是访问特定 js 的唯一方法?
像您一样使用相对路径是访问特定.js 文件的方法。客户端库不是为通过选择器访问而设计的。理想情况下,您将希望始终通过客户端库加载 JavaScript,因为它可以提高将脚本组合到单个 HTTP 请求中的性能(更多的 HTTP 请求需要比 1 个更长的时间来加载)。它还会压缩脚本以使其更小。因此,您可以在 app1.js 等文件中使用完整的白色 space 和注释和格式来获取源脚本,然后通过删除白色 space 和注释的基本客户端库加载它们不需要最终用户下载脚本。
如果您只需要客户端库的 部分 ,您可以定义第二个客户端库,它只包含您想要的部分。您可以将相同的源文件(例如 app1.js)包含在多个不同的客户端库中。对于您的用例,这听起来是最好的方法。
为了调试,您始终可以添加 ?debugClientLibs=true
查询字符串,以便在浏览器中临时再次查看各个文件。
我已经将我所有的 js 文件组织到一个通用的 clientlib 类别中。例如
->etc
->designs
->myapp
-> clientlibs
-> base
-> js
-> app1.js
-> app2.js
-> app3.js
因此,当我访问 /etc/designs/myapp/clientlibs/base.js 时,它 return 是一个包含所有包含的 js 内容的大型合并 js。有没有办法从这个 base.js 访问特定的 js(比如 app2.js)。我们可以使用像 /etc/designs/myapp/clientlibs/base/js/app2.js 这样的相对路径并且它有效。
但是有没有更好的方法(也许使用像 /clientlibs/base.app2.js 这样的选择器)来 return 这个 js? 或者这是访问特定 js 的唯一方法?
像您一样使用相对路径是访问特定.js 文件的方法。客户端库不是为通过选择器访问而设计的。理想情况下,您将希望始终通过客户端库加载 JavaScript,因为它可以提高将脚本组合到单个 HTTP 请求中的性能(更多的 HTTP 请求需要比 1 个更长的时间来加载)。它还会压缩脚本以使其更小。因此,您可以在 app1.js 等文件中使用完整的白色 space 和注释和格式来获取源脚本,然后通过删除白色 space 和注释的基本客户端库加载它们不需要最终用户下载脚本。
如果您只需要客户端库的 部分 ,您可以定义第二个客户端库,它只包含您想要的部分。您可以将相同的源文件(例如 app1.js)包含在多个不同的客户端库中。对于您的用例,这听起来是最好的方法。
为了调试,您始终可以添加 ?debugClientLibs=true
查询字符串,以便在浏览器中临时再次查看各个文件。