【问题标题】:Dynamic JavaScript loading with compression带压缩的动态 JavaScript 加载
【发布时间】:2009-11-24 15:41:33
【问题描述】:

虽然我使用的是 Zend 框架、MooTools JS 库,我的问题围绕着它们展开,但这是一个更通用的问题。

我正在开发一个网络应用程序,其中我使用了许多有时在其他页面上有用的元素(例如 OpenLayers 相关的 MooTools 类)。

Mootools 已经允许通过“分类”(创建“类”..)进行这种“分段”,所以我觉得接下来要做的是为每个类创建单独的 JS 文件,然后向 PHP 页面发送请求我想要的类和我需要的返回 JS 文件。 同时,这种机制会在服务器本地进行压缩、gzip 和缓存(用于将来的请求)并将这个文件发回给我。

我还没有进入设计领域,想知道是否有这样/类似的解决方案? 或者,我看到像 labJS 这样的库通过多线程请求来加快处理速度,但这并不能通过缩小和 gzip 完成解决方案(我必须使用另一个补充解决方案来处理这个服务器端)。

有没有人使用类似的动态JS“类”加载方案?

干杯, 罗马

【问题讨论】:

    标签: javascript zend-framework mootools


    【解决方案1】:

    我认为您要查看的工具是minify 项目。这是一个描述:

    Minify 是一个 PHP5 应用程序,可以帮助您 关注几个 Yahoo! 的Rules for High Performance Web Sites

    它结合了多个 CSS 或 Javascript 文件,删除不必要的空格 和 cmets,并为他们服务 gzip 编码和最佳客户端 缓存头。

    使用起来非常简单,假设您已将其安装在http://example.com/min/,并且您有两个文件要压缩:

    • /resources/js/lib/library.js
    • /resources/js/main.js

    你会调用这个网址:

    http://example.com/min/b=resources/js&f=lib/library.js,main.js

    代码如下:

    <script type="text/javascript"
       src="/min/b=resources/js&amp;f=lib/library.js,main.js"></script>
    

    所以基本上有一种基于 URI 的一致方式将文件合并在一起。

    【讨论】:

    • 嗯..这看起来很有前途,我正要自己写这个,看看有没有好处,谢谢!
    • 我最终选择了 mootools 自己的“依赖”工具,但您的回答也很好,所以我会选择它作为正确的。
    【解决方案2】:

    我对 zend 不熟悉,对 mootools 只是有点熟悉,因此请多加注意。

    拥有一个生成/缩小您拥有的类的所有可能组合然后只请求特定组合的过程不是更容易吗?您可以很容易地使用脚本自动执行此操作。

    另外,我已经为 wordpress 使用了 HyperCacheWP_Minify 插件,它们几乎可以完成您所说的所有事情,因此您可能想在那里寻找灵感。

    【讨论】:

    • 确实我可以这样做,这将是我使用 LABjs 和像后者这样的解决方案时的选项之一的第二部分。但是由于这是一个 WordPress 组件,我需要编写自己的模块。我最终可能会选择这个选项,因为我认为提供静态文件会更快
    【解决方案3】:

    您所描述的几乎就是YUI PHP Loader 所做的,尽管它是针对 YUI JavaScript 库量身定制的。但是,该项目在 BSD 许可下是开源的,因此它是一个获得一些想法来实现自己的想法的好地方。

    还请查看Lissa(基于 YUI PHP 加载器),它是一个通用的 JavaScript(和 CSS)加载器。

    【讨论】:

      猜你喜欢
      • 2011-07-21
      • 1970-01-01
      • 2012-07-27
      • 1970-01-01
      • 2012-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多