如何刷新Odata模型

How to Refresh Odata Model

我有一个应用程序将数据发送到我的后端(数据库)。

另一个应用程序的UI中,使用ODATA模型消耗数据。

当数据库中有任何 insert/update 时,我希望更改自动反映在 UI 中,而不必每次都按 f5。

我怎样才能做到这一点?

谢谢!

遗憾的是,OData 无法将数据从生产者推送到消费者,因此您必须实施一种轮询形式。

我同意让用户手动执行此操作并不好。相反,您可以通过指示您的应用程序读取可能更改的数据,例如自动为您的用户完成此操作。每秒:

setInterval(function() {
        oModel.read('/EntityChangedByTheOtherApp');
    }, 1000);

或者,您可以打开一个与服务器的网络套接字(例如 ABAP 推送通道),并让服务器在第一个应用程序进行更改时通知您的应用程序。这可以防止您的应用程序不得不不断刷新未更改的数据。 SCN 上有一篇很好的博客详细解释了这个技巧:http://scn.sap.com/community/abap/connectivity/blog/2014/06/20/enabling-real-time-bidirectional-client-server-communication-using-abap-push-channel