0

我有一个空模板,只有一个保险箱表单,包含 2 个自定义字段。当我尝试在浏览器中加载它时,加载大约需要 2-3 秒。看着萤火虫,我看到以下 GET

http://localhost/ee1/?ACT=7&ui=core,widget,mouse,position,draggable,resizable,button,dialog,datepicker&plugin=scrollable,scrollable.navigator,ee_filebrowser,ee_fileuploader,markitup,thickbox,toolbox.expose,overlay,tmpl&v=1308711156&use_live_url=y&include_jquery=y

我不需要加载上面 url 中显示的大部分内容。我如何控制使用安全破解器表单加载的内容。我将直接从 google 加载 jQuery/UI,所以我不需要 safecracker 来加载它。我可以通过 do 从 safecracker 表单中删除 jQuery 和 datepicker datepicker="no" include_jquery="no",但是如何删除 url 中提到的其他内容,例如可滚动、可拖动、thickbox 和其他内容。

在此处输入图像描述

4

2 回答 2

2

简短的回答:

遗憾的是,无法禁用许多包含的 SafeCracker JavaScript。

长答案:

SafeCracker 旨在尽可能通用,并满足最大受众的需求。

通过这种权衡,SafeCracker 捆绑了 jQuery、jQuery UI 小部件、jQuery 工具和各种其他 jQuery 插件和功能,以促进客户端表单验证和自定义字段类型的呈现。

正如你所展示的,你可以禁用 jQuery 自动被 SafeCracker 输出——比如说,如果你想使用 EE 控制面板中可用的更新版本——你可以禁用 DatePicker,但据我所知你可以在不破解核心 SafeCracker 库的情况下,不要阻止其余的 JavaScript 被输出

可以理解,我不是这种“包括所有东西和厨房水槽方法”的忠实拥护者,并且讨厌看到将多余和臃肿的脚本添加到页面中——尤其是那些我一开始就不会使用的脚本。

尽管如此,SafeCracker 的构建显然是一个设计决策,以包含它输出的所有 JavaScript,因为没有经过批准的删除它们的方法。所以我们基本上被困在无法预见的未来与他们打交道。

如果您对此有强烈的感觉,我建议您向EllisLab 提交功能请求,以允许对 SafeCracker 输出更多真正需要的更多 JavaScript 的草率方式进行更多配置。


出于好奇,请查看以下文件中第 887 行附近的峰值,以查看 SafeCracker 标记对中捆绑了多少 jQuery UI 小部件。

/system/expressionengine/modules/safecracker/libraries/safecracker_lib.php


注意:如果您想自己动手,可以注释掉$js_defaultsand$ui数组中的一些项目,这将删除 JavaScript 的输出。但是,在这样做时,您对 SafeCracker 的操作承担所有责任和风险。

于 2011-06-25T03:29:46.467 回答
0

我假设自从 rjb 的回答以来这已经发生了变化,但是 SafeCracker 提供了两个我发现有助于大大减少页面加载时间的参数:

include_jquery="no" safecracker_head="no"

相关 文件

于 2012-03-01T04:35:46.600 回答