javascript-HTML5 LocalStorage作为缓存和单个资产请求

我想知道以下概念的局限性:

要求:

>具有LocalStorage支持的浏览器.
>服务器端异步非阻塞I / O技术.

让我们想象以下请求流:

>客户端GET /请求->服务器.我们称此阶段为“打招呼”,这是一个有趣的阶段,因为客户端现在正在发送(也通过过程的标题):

> IP
>浏览器
>浏览器版本
>语言
>字符集

>服务器->客户(200 OK)
>客户->如果可以
      ->与服务器建立一个websocket

建立网络套接字后,我们进入“资产流”阶段.

>服务器->查找匹配的资产(样式表,图像,javascript文件,字体等),这些资产特定于:语言,浏览器,分辨率特定的资产),并通过websocket对它们进行流式处理.
>服务器->请求(网络套接字,异步资产流)

优点1.无需通过电线进行多次请求即可避免DNS查找等.

优势2.将这些资产从本地存储中缓存下来,这是下一阶段.

>请求->放在LocalStorage缓存中.
>请求->渲染网站.

我想知道得到一些意见,什么可能是个好主意,什么可能不等等.

我的第一个想法是:

>此架构不支持CDN
>我们需要一个请求来获取javascript / html来启动WebSocket等.

我希望我的问题很清楚.

解决方法:

有趣的方法,绝对值得考虑.让我成为您的魔鬼的拥护者:

BENEFIT 1. No multiple requests through the wire avoiding DNS lookups
etc.

确实如此,尽管这只是您首次访问页面/站点时的一个问题.通过现代浏览器实现的预取,它也有所缓解.重要的是要记住,与批量下载整个有效负载相比,浏览器将并行下载多个资源,这可能会更快,而且响应速度肯定会逐步提高.

借助当今的技术,就Web客户端而言,您已经可以使用很少的资源来提供完整的页面和应用程序(所有这些资源都可以压缩!):

> HTML
>将合并和缩小的CSS文件作为一种资源
>与JS相同
>图像精灵

BENEFIT 2. Cache the hell out of these assets in localStorage…

浏览器已经从这些资产中缓存了地狱!此外,还有经过验证的智能技术可使这些缓存无效(这是软件开发中的第二大挑战).

要考虑的其他事项:

>不要低估CDN.当涉及到时,他们是救生员
潜伏.您的方法在第一时间不适合延迟
请求.
> AJAX和渐进增强方法可以优化Web应用程序
使其变得像桌面应用程序一样的经验.
>您需要重新发明或修改FireBug等工具才能正常工作
一个包含所有资源的流.无法进行网络开发
想象中的今天没有那些工具.
>如果浏览器本身不支持此方法,那么您将
仍然很费时间编程并让浏览器知道
流中包含什么以及如何处理它.当你
处理流并触发所有必要事件(以最佳状态
顺序!),您可能不会获得期望的收益.

祝好运!

上一篇:在vue中动态加载图片src属性,会出现图片加载不出来的情况


下一篇:资产和NullPointerException中的JSON数组