我正在使用带有Fix Pack 5的Domino 9.0.1,它给了我dojo 1.9.7。在我的xsp属性中,我将它设置为使用运行时优化的JavaScript和CSS资源。我期待这个设置可以大大减少加载XPage时对服务器的请求数量,但它只有最小的效果。
罪魁祸首是dojo.js - 它针对各种.js和资源文件向服务器做了100多个单独的请求。我假设这些来自我使用的各种控件,利用dojo。有没有办法将这些dojo请求合并到一个请求中?
更新:它们几乎全部来自/xsp/.ibmxspres/dojoroot-1.9.7/dijit/
和/xsp/.ibmxspres/dojoroot-1.9.7/dojo/
,还来自/xsp/.ibmxspres/.extlib/dijit/
更新: 我的XSP设置:
xsp.ajax.renderwholetree=false
xsp.error.page.default=true
xsp.persistence.mode=fileex
xsp.resources.aggregate=true
xsp.user.timezone=true
xsp.html.doctype=html
xsp.theme.mobile.pagePrefix=m_
xsp.application.forcefullrefresh=true
xsp.library.depends=com.ibm.xsp.extlib.library
xsp.min.version=9.0.1
xsp.theme=vi.theme
更新: 我正在使用一个dynamicContent控件,它自动加载一个自定义控件,其中包含许多使用dojo的控件。这导致XPages引擎生成一堆脚本标记,其中包含dojo.require()调用。这些调用导致dojo.js发出100多个xhr请求。
答案 0 :(得分:4)
我的解决方案是使用资源标记包含dows.require()调用XPages引擎在我的主题中的自定义控件中自动生成:
<resources>
<dojoModule target="xsp" name="dojo.parser"></dojoModule>
<dojoModule target="xsp" name="extlib.dijit.DynamicContent"></dojoModule>
<dojoModule target="xsp" name="dextlib.dojo.helper.IFrameAdjuster"></dojoModule>
<dojoModule target="xsp" name="dijit.Toolbar"></dojoModule>
<dojoModule target="xsp" name="dijit.form.Button"></dojoModule>
<dojoModule target="xsp" name="extlib.dijit.Menu"></dojoModule>
<dojoModule target="xsp" name="extlib.dijit.Tabs"></dojoModule>
<dojoModule target="xsp" name="extlib.dijit.TabPane"></dojoModule>
<dojoModule target="xsp" name="dijit.form.DateTextBox"></dojoModule>
<dojoModule target="xsp" name="dijit.form.TimeTextBox"></dojoModule>
</resources>
这会导致聚合dojo js文件。执行此操作后,请求数从134个增加到28个。
答案 1 :(得分:2)