2014-03-03 21 views
0

我有一个单页应用程序有两个页面 - 第一页包含一个数据视图视图控件(我用向导来创建页面 - 我没有创建任何自定义控件,因为整个应用程序只包含4页!),第二页然后显示在数据视图控件中选择的文档。这完美的作品!我的问题是Data View控件中显示的文档没有被刷新 - 我需要手动刷新才能显示。不是一个问题,我虽然只是做一个自动刷新,每5秒(也有只将是约20个用户使用的应用程序):XPages:单页应用程序数据查看刷新

<meta http-equiv="refresh" content="5; URL="></meta> 

这完全刷新页面 - 如果用户是在第二页上他/她会被数据视图控件(即第1页)带回到页面,并且不会保留在打开的文档(即第2页)上。

我怎样才能让Data View控件定期刷新而不会碰到Data View控件?

请多关照 熊属

回答

1

我不认为你真的要刷新视图每n秒为具有成为一个巨大的性能问题的可能性,加上古怪的原因正如你所指出。有两种方法可以解决这个:

  • 在应用程序页面属性,设置resetContent为true
  • 创建onAfterTransitionIn事件做一个XSP.partialRefreshGet上的数据视图或它的容器。这样当有人登陆视图时,它会刷新它的内容。下面是一个例子:

    var widget = dijit.byId("#appPageName"); 
    dojo.connect(widget, "onAfterTransitionIn", function(moveTo, dir, transition, context, method){ 
        console.log("onAfterTransitionIn args=",arguments); 
        var appPageChildren = dojo.query("[id='" + appPageName + "']").children()[0]; 
        var contentId = appPageChildren.id; 
        console.log("contentId=",contentId); 
        setTimeout(function() { 
         XSP.partialRefreshGet(contentId, {}); 
        },200); 
    }); 
    
+0

感谢您抽出时间来回答我的问题。我已经尝试了resetContent - >就我所见,这在本文中没有做任何事情 - 当后端添加新文档时,它绝对不会刷新视图。 。感谢您的代码,但这不是我正在寻找的。 “所有”我真正想要的是视图(数据视图控制)刷新,当新的文件被添加到它例如。另一个用户。 –

+0

现代的方法是看Facebook或Google+。当新内容可用时,您会收到通知,您可以选择刷新以查看新内容。然而,对于nsf,目前还没有机制可以做到这一点(至少可以在xsp中表现出来)。所以,我会通过以下方式来解决这个问题:a)当有人登陆视图时更新内容和/或b)为视图提供“拉动刷新”功能。我这样说是因为,如果应用程序增长超过您的少数用户,自动更新将成为性能瓶颈并损害用户体验。 – keithstric

+0

嗨。我确实明白你在说什么,这对于上班族来说是一个很好的方法。叉车司机正在使用该应用程序进行生产。让用户刷新视图意味着他/她需要停下来,将他们的手从方向盘上移开并刷新视图。如果他们打算与应用程序进行交互(接受下一个生产订单,这是他们在第2页上做的),但这并不仅仅是为了看看是否有订单:o(我目前正在考虑拥有2页,其中一页带有自动刷新,另一页接受订单。 –

相关问题