我正在使用Steroids生成器ng-resource,它根据一些本地json数据生成了控制器/模型/视图。它有一个index.html和一个detailed.html
样板代码提供了您点击的汽车列表,带您进入汽车详细页面的新webview。很容易。问题是,此视图未预加载 - 在您单击汽车列表中的汽车后加载。这会产生一种滞后的体验。
我已经阅读了预加载网页视图的内容 - 如果您没有动态数据支持的大量网页视图,那么效果会非常好。我想根据“汽车”的初始列表预加载所有详细的网页浏览量。我一直在阅读以下资源:
Preloaded Webviews from different parts of your app
我没有提供很多原始代码 - 只是ng-resource的样板示例。我想知道最好的技术方法是什么,以满足我的需求。尝试在导航时获得原生应用程序的感觉。
答案 0 :(得分:0)
根据您描述的用例,我建议您在应用中预先加载show.html,然后每当您需要显示show.html时,您都会从视图中发送邮件消息从show.html移动它应该加载提供的id的内容。
如果你必须从远程服务器加载内容,你应该发送两个postmessages,第一个包括你在show.html页面上使用的上一页已有的任何信息。
我不知道我是否能够以最容易理解的方式解释这个问题,但如果我的解释不清楚,请提出更多问题) 事实证明这很简单:
以下解决方案的主要问题是创建大量网页视图时的内存问题
旧答案: for(var i = 0; i
var webView = new steroids.views.WebView({location:"/views/cars/show.html? id="+id,id:id});
console.log(webView);
webView.preload({}, {
onSuccess: function() {
//steroids.layers.push(webView);
console.log('working');
}
});
}
然后使用另一个函数调用具有相同ID的webview:
$scope.open = function(id) {
var webView = new steroids.views.WebView({location:"/views/cars/show.html?id="+id,id:id});
steroids.layers.push(webView);
};