HTML5 本地存储作为缓存和单个资产请求
HTML5 LocalStorage as cache and single asset request
我想知道以下概念的限制和缺点是什么:
要求:
- 支持本地存储的浏览器。
- 服务器端异步非阻塞 I/O 技术。
让我们想象一下以下请求流:
-
客户端 GET/请求 -> 服务器 。我们称这个阶段为"问候",这是一个有趣的阶段,因为客户端现在发送(当然也是槽头):
- 知识产权
- 浏览器
- 浏览器版本
- 语言
- 字符集
-
服务器 -> 客户端 (200 OK)
-
客户端 -> 如果正常 ->与服务器建立网络套接字
一旦建立了WebSocket,我们就进入了"资产流"阶段。
-
服务器 -> 查找特定于 语言、浏览器、分辨率特定资产的匹配资产(样式表、图像、JavaScript 文件、字体等),并通过 websocket 对它们进行流式处理。
-
服务器 -> 请求 (WebSocket、资产的异步流)
好处 1. 没有通过线路的多个请求,避免了DNS查找等。
好处 2. 将这些资产缓存在本地存储中,这是下一个阶段。
- request ->放入本地存储缓存中。
- 请求 ->呈现网站。
我想知道得到一些意见,什么可能是个好主意,什么可能不是等等。
我的第一个想法是:
- 此体系结构不支持 CDN
- 我们需要一个请求来获取javascript/html来启动WebSocket等。
我希望我的问题很清楚。
有趣的方法,绝对值得思考。让我成为你的魔鬼代言人:
好处 1.没有通过线路的多个请求,避免了 DNS 查找 等。
这是真的,尽管这只是您第一次访问页面/网站时的问题。通过现代浏览器实现的预取,它也得到了一定程度的缓解。重要的是要记住,浏览器将并行下载多个资源,这可能比批量下载整个有效负载更快,而且响应速度更快。
使用今天的技术,就Web客户端而言,您已经可以使用只有少量资源来提供完整的页面和应用程序(所有这些都可以gziped!
- .HTML
- 合并和缩小的 CSS 文件作为一个资源
- 与 JS 相同
- 图像精灵
好处 2.在本地存储中缓存这些资产...
浏览器已经缓存了这些资产!此外,还有一些经过验证的智能技术可以使这些缓存失效(这是软件开发中的第二大挑战)。
其他需要考虑的事项:
- 不要小看 CDN。当涉及到时,他们是救命稻草延迟。您的方法在第一次对延迟不友好请求。
- AJAX 和渐进式增强方法可以优化 Web 应用程序体验让它感觉像一个桌面应用程序。
- 您需要重新发明或修改FireBug等工具才能工作。一个流包含所有资源。没有网络开发可以想象现在没有这些工具。
- 如果浏览器本身不支持此方法,那么您将仍然有一段地狱般的时间编程并让浏览器知道您的流包含什么以及如何处理它。当你处理流并触发所有必要的事件(在最佳情况下序列!您可能不会获得您希望的那么多好处。
祝你好运!
- 如何在具有某些 UI 视图的状态中管理工厂单个请求数据
- 如何在ajax请求中将多组数据作为单个变量发布
- HTML5 本地存储作为缓存和单个资产请求
- 如何在php中获得对单个ajax请求的多个响应
- 来自单个请求的 ajax 请求数组
- 主干:在单个请求中批量保存模型
- 如何在单个HTTP请求中加载角度控制器和模板
- 在Node.js中的单个HTTP请求中调用多个HTTP请求
- jQueryAjax请求仅适用于单个表单提交
- 如何在执行ajax请求时删除“_”单个Undercore查询参数
- 当使用带有单个套接字的httpAgent时,它会在发送下一个请求之前等待响应吗?
- Wordpress PHP下拉过滤器(2x)与单个Ajax请求
- 将ajax请求限制在单个页面上
- 如何明确地针对GET请求的JSON文件中的单个图像并应用函数?
- 如何通过JSON GET请求将输入中的文本附加到单个项中
- Javascript -从不同的国家发送单个http请求
- 在单个AJAX请求期间动态地使用PHP脚本
- 使用Express和Node.js发送两个对象作为对单个GET请求的响应
- 如何在AngularJS中更新单个API请求来传递不同的Query参数?
- 摩卡:单个服务器请求中的多个“it”调用