Javascript远程处理无法在脱机模式下工作。错误说“Visualforce未定义”

时间:2016-05-10 10:12:36

标签: angularjs salesforce visualforce apex html5-appcache

我在我们的应用程序中使用Javascript远程处理。我们还在应用程序中具有HTML5缓存清单的脱机功能。我们的应用程序流程是这样的,每当用户在线时,包括javascript文件在内的所有文件都被缓存并存储在本地存储中,并且所有过程都是使用这些文件在线或离线完成的。

我的问题是,当我们使用缓存中的文件时,不会创建Javascript远程处理的Visualforce对象(因为它是在服务器上创建的)。但是,我们无法执行任何soql查询。

错误说“未定义Visualforce”。

我们如何解决这个问题。

1 个答案:

答案 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
}