我有一个空模板,只有一个安全表单,包含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
我不需要加载上面网址中显示的大部分内容。我如何控制装有safecracker表单的内容。我将直接从谷歌加载jQuery / UI,所以我不需要safecracker加载它。我可以通过执行datepicker="no" include_jquery="no"
从safecracker表单中删除jQuery和datepicker,但是如何删除url中提到的其他内容,如可滚动,可拖动,厚盒和其他东西。
答案 0 :(得分:2)
可悲的是,没有办法禁用许多包含的SafeCracker JavaScripts。
SafeCracker旨在尽可能达到通用目的,以满足最大受众的需求。
通过这种权衡,SafeCracker捆绑了jQuery,jQuery UI Widgets,jQuery Tools和各种其他jQuery插件和函数,以方便客户端表单验证和自定义字段类型的呈现。
正如您所示,您可以disable jQuery from automatically being output by SafeCracker - 例如,如果您想使用EE控制面板中提供的更新版本 - 并且您可以禁用DatePicker,但据我所知如果不破解核心的SafeCracker库,就无法阻止其他JavaScripts的输出。
可以理解的是,我不是这个“包括所有内容和厨房接收器方法”的忠实粉丝,并且讨厌在页面中添加无关且臃肿的脚本 - 尤其是那些我从未首先使用过的脚本。
然而,显然是一个设计决策,SafeCracker的构建包括它输出的所有JavaScripts,因为没有经过批准的方法来删除它们。所以我们基本上不会因为无法预料的未来与他们打交道。
如果您对此表示强烈反对,我建议您提交一个Feature Request to EllisLab,以便更安全地配置SafeCracker输出更多JavaScripts的草率方式。
对于好奇的人,请在以下文件中围绕第887行取一个高峰来查看SafeCracker标记对中捆绑了多少个jQuery UI Widgets。
/system/expressionengine/modules/safecracker/libraries/safecracker_lib.php
注意:如果您想自己解决问题,可以注释掉$js_defaults
和$ui
数组中的一些项目,这些项目将删除JavaScripts的输出。但是,在这样做时,您将承担SafeCracker操作的所有责任和风险。
答案 1 :(得分:0)
我认为自rjb回答以来这已经发生了变化,但SafeCracker提供了两个我发现有助于大幅减少页面加载时间的参数:
include_jquery="no" safecracker_head="no"