我在我们的应用程序中使用Javascript远程处理。我们还在应用程序中具有HTML5缓存清单的脱机功能。我们的应用程序流程是这样的,每当用户在线时,包括javascript文件在内的所有文件都被缓存并存储在本地存储中,并且所有过程都是使用这些文件在线或离线完成的。
我的问题是,当我们使用缓存中的文件时,不会创建Javascript远程处理的Visualforce对象(因为它是在服务器上创建的)。但是,我们无法执行任何soql查询。
错误说“未定义Visualforce”。
我们如何解决这个问题。
答案 0 :(得分:0)
如果没有看到您的代码,很难分辨,但在某些时候,Visualforce对象在未定义的情况下正在执行。只有在进行远程调用时才应使用Visualforce对象。如果您处于离线状态,显然无法对服务器进行远程调用。
如果未定义Visualforce,则可以从设置cachedPageLoad变量开始:
if(!Visualforce) {
cachedPageLoad = true;
} else {
cachedPageLoad = false
}
然后将所有Visualforce.remoting调用嵌套在cachedPageLoad变量的检查中。
if(cachedPageLoad) {
// save to local storage
} else {
// Visualforce.remoting call
}