单个XPage的xsp.client.script.libraries = none

时间:2012-10-15 11:45:29

标签: mobile xpages

我正在使用XPage开发移动应用程序。我试图通过在设备上本地缓存资源来加快速度。使用扩展库中的控件并不是一项简单的任务(例如,我在某些页面上有预先输入)。

因此,我决定使用jQuery Mobile构建一个并行接口,以便能够对这两种方法进行基准测试。

在执行此操作时,我想处理jQuery Mobile XPage的ressource,以便我只加载所需的资源,即避免加载dojo(例如,在此页面上有一个简短的指南:http://dpastov.blogspot.dk/2011/01/trying-to-get-full-control-over-xpage.html)。我发现的解决方案的问题在于它们是应用程序范围的。例如。设置

xsp.client.script.libraries=none
xsp.properties中的

将对数据库中的所有XPage生效(包括应用程序的Ext.lib版本)。按照“XPage可移植命令指南”中的指南,我尝试将单个XPage(jQuery Mobile)的属性设置为:

    <?xml version="1.0" encoding="UTF-8"?>
    <xp:view xmlns:xp="http://www.ibm.com/xsp/core" disableTheme="true" createForm="false">
        <xp:this.properties>
            <xp:parameter name="xsp.client.script.libraries" value="none">  
            </xp:parameter>
        </xp:this.properties>

不幸的是,这似乎不起作用。

我知道,我可以将第二个XPage放在一个单独的数据库中,但是,我想避免这样做,因为这会引发其他问题。

有什么想法吗?

/约翰

2 个答案:

答案 0 :(得分:4)

您可以通过添加

来禁用dojo库
facesContext.getRequestParameters().setJsLibrary(0);

到XPage的 beforeRenderResponse beforePageLoad 事件。

答案 1 :(得分:0)

使用辅助数据库进行jQuery设计听起来很合理。那么你应该做的是从辅助数据库加载UI并使用ajax调用(a)主数据库中的ajax / rest控件。您还可以从资源或经典页面加载UI(设置为passthru HTML)。

选项的

澄清(每个项目符号都是一个单独的方法):

  • 使用辅助数据库(最不可取的)
  • 将初始jQuery UI(无实际数据)放入经典页面,并使用来自位于XPage上的JSON控件(来自extlib)的REST调用来加载数据
  • 使用XAgent加载初始jQuery UI并继续使用REST / JSON填充数据

希望有所帮助