na_*_*_na 8 html javascript web-applications
这个问题与Web应用程序有关.我的Web应用程序开发经验非常少,因此可能会遗漏一些非常明显的要点/问题.请指出它们.
据我所知,在大多数Web应用程序中,Web服务器通过网络将HTML发送到客户端(浏览器).每次发出HTTP请求时都会发生这种情况.我觉得这非常浪费带宽.
1)由于浏览器可以运行JavaScript,为什么我们不发送一个JavaScript程序,它可以生成网页的HTML内容(浏览器然后呈现).
2)此外,浏览器可能会缓存JavaScript程序,下次服务器只需要发送数据.协议可能涉及浏览器发送它的"程序版本".
考虑一个相对简单的网站Hacker News [ http://news.ycombinator.com]的例子.让我们将数据(30个帖子及其元数据)与其演示文稿分开.假设上面1),服务器可以只发送数据(比如用JSON)+一个JavaScript程序来生成HTML.这个要点表明了这个想法.30个帖子的数据采用JSON [ http://www.json.org/js.html]格式.对于此特定示例,传输的数据以1/2(数据大小+ JavaScript/HTML大小)切割.此外,如果浏览器可以执行上述2),则会将每次访问时传输的数据减少到1/4(数据大小/ HTML大小).[注意:此分析不考虑压缩; gzip,deflate在减小HTML的大小方面非常成功.但预防不是比治疗好吗?]
我认为至少有以下优点: -
*对于大多数网页,它将减少通过线路传输的数据的大小.
*强制Web应用程序将数据与其演示文稿分开.
缺点可能包括 - 更复杂的浏览器,运行JavaScript程序生成HTML的时间(这可能会因数据大小的减少而抵消).
现在我的问题是 - 为什么Web应用程序不是以这种方式开发的,或者,为什么Web应用程序通过网络发送HTML?当然,Web服务器(发送HTML)根本不关心HTML,那么为什么要首先生成它,然后通过网络发送它?
出现这种情况的明显原因是,当我们开始发送 HTML 时,JavaScript 还不存在,而 HTML 是对发送纯文本文档的改进。
我们现在不这样做的原因是:我们避开那些不是真正问题的问题的复杂解决方案。
平均互联网连接每秒下载近 1M 字节,并且 Web 浏览器非常擅长解析并开始渲染此 HTML,甚至在它准备就绪之前。它们还擅长并行下载页面上的资源。如果我们想以一些计算周期为代价来节省一些字节,我们可以在发送内容之前对内容进行压缩。问题解决了。
郑重声明,我们在复杂的网页中使用 AJAX 来实现这一点(查看 Github 的源代码浏览,了解这是多么棒的一个很好的例子)。
有几个原因,其中一些是历史性的,这绝不是一个完整的清单,而只是我的一些经验:
你所建议的基本上就是像 ExtJS 这样的 JavaScript 全栈框架所做的事情。您可以创建丰富的数据密集型应用程序,而无需编写任何 HTML —— 嗯,只需引用必要的 .js 库即可。布局、网格、表单等所需的复杂 DOM 都是由框架创建的。
归档时间: |
|
查看次数: |
2673 次 |
最近记录: |