Javascript生成的内容未缓存Ratchet v2.0.2
Javascript generated content not cached Ratchet v2.0.2
我正在使用Ratchet附带的电影演示应用程序作为我的应用程序的模板。
我做的第一件事是将索引页上的静态html影片更改为jQueryajax获取的影片。但我遇到的问题是,当我回到索引页面时,它是空的,因为javascript获取和生成的内容没有缓存。
同样的问题出现在这里:https://groups.google.com/forum/#!主题/goratchet/3nlzW_A8Tys
解决方案是添加EventListener("push")并缓存页面,但我不清楚如何实现这一点。
- 我必须使用推送来获取内容吗?如果需要,如何获取
- 如何缓存页面
Push.js在您离开页面之前缓存上下文,并将其缓存在由导航事件的时间戳键控的关联数组domCache
中。通过触发带有时间戳的popstate事件返回到缓存页面。
var e = new CustomEvent('popstate')
e.state = <cached-timetamp-key>
window.dispatchEvent(e)
缓存项密钥是缓存后堆栈cacheMapping.cachedBackStack
中的最后一个项
因此,如果您向push.js(在您的ratche.js文件中)添加一个方法,以返回backpack 中的下一个项目
var getPreviousId = function () {
var backStack = JSON.parse(cacheMapping.cacheBackStack);
return backStack.length > 0 ? backStack[backStack.length -1] : null;
}
以及在哪里保存先前的id,在哪里保存当前id,例如查找
PUSH.id = data.id;
并添加行以暴露之前的id
PUSH.id = data.id;
PUSH.previousId = getPreviousId(); //save previous id
然后您可以使用以下返回到缓存的页面
var e = new CustomEvent('popstate');
e.state = PUSH.previousId;
window.dispatchEvent(e);
如果你想让棘轮自动处理,你必须在合适的时候进入touchend()
方法或PUSH()本身调用popstate()
。
相关文章:
- 如何在从浏览缓存加载页面时执行javascript
- ReactJS和SpringDataRest缓存问题可能与websocket有关
- 缓存谷歌地图数据
- 防止jQuery Mobile中的ajax缓存
- image.onload事件和浏览器缓存
- Javascript清除缓存以清除基本身份验证凭据
- 使用jquery.load('pageName')方法时,未从应用程序缓存加载Html页
- 将脚本缓存到本地存储的basket.js概念仍然是一个好主意吗
- 阻止选项卡缓存jquery ui
- 强制浏览器更新缓存的HTML5视频对象
- 在Javascript中使用全局变量作为缓存是很好的
- 缓存!saveLocations()和addLocation()函数有什么区别
- 微软边缘浏览器缓存中的RESTful Angular应用程序
- 浏览器坚持使用旧的html和JS缓存
- 浏览器是否持久缓存脚本元素的编译版本
- 登录后重定向,缓存页面问题-Javascript
- Angular2他们如何保存到缓存
- ASP.NET IIS应用程序中的客户端脚本缓存
- 使用Ratchet(Push.js)缓存页面
- Javascript生成的内容未缓存Ratchet v2.0.2