页面静态化优缺点

很久以前,人们在遥远的互联网上手工建造自己的网站,将每个HTML标签都放在工匠的精心照顾下。 他们花了一整天的时间思考诸如“我应该使用<b>还是完全使用<flash>标签的方式?”之类的问题。

席卷服务器场的第一波自动化浪潮将这些标签打乱的人员排到了一边,并用模板代替了它们,这些模板会在当天的设计中自动包装文字和图像。 突然,旧网页被称为“静态”,这是一个追溯记录,显示了它们与新的,适应性强且风格新颖的“动态”网站相比如何过时。

[编程艺术发展Swift。 InfoWorld可以帮助您导航正在运行的东西和正在运行的东西 。 | 通过InfoWorld的App Dev Report新闻通讯了解编程方面的热门话题。 ]

哦,时代如何改变。 就像领结变得流行和过时一样,突然之间“静态”正在流行,髋关节编码者在讨论它时却丝毫没有嘲笑的自尊心。 “静态”快速且快速。 “动态”正在思考,摸索和缓慢。

也许有人有时间在等待和等待构建过程完成时转译一个巨大的仓库,其中堆满了React,Vue和Angular的邪恶混合物? 也许有人无法使数据库足够扩展以处理来自多层动态层的无休止查询,而多层动态层不断将相同数据注入相同页面上的相同块中? 也许有人想知道为什么我们要解决所有这些麻烦,以便网页在角落里会出现一些个人问候,说“鲍勃的帐户”?

解决所有这些问题的最新方法是使用静态网站生成器 ,该工具与动态网站一样复杂,并以相同方式将所有内容倒入模板中。 但这会将结果保存在带.html后缀的文件中,从而将数据转换为静态网页,可以将其托管在您的祖父母用来度蜜月GIF的同一类静态Web服务器上。 您不需要与世界连接的多层此服务或微服务。 您只需复制一些文件,然后让基本的Web服务器完成工作即可。

那里已经有很多静态站点生成器。 Jekyll是为Ruby应用程序构建的。 Next或Gatsby将导出React。 许多动态平台(例如Drupal)都具有模块 ,这些模块将构造整个站点或重要子集的静态副本。 太多了,以至于有些开发人员建立了不错的策划列表。 (请参见此处和此处 。)

就像所有改变世界的想法一样,这种策略既是天才的合法闪光,也是温和的甲基纤维素的混合体,具体取决于您如何看待它。 这是为什么静态站点生成器能与四个有趣的交错打扰的理由很好地交织在一起的四个原因。

优点:静态网站速度很快

一口气再说一遍:快! 整个网页都放在可以使用的SSD中。 Web服务器仅需要将其复制到网卡顶部的TCP / IP代码。 无需从数据库中获取一些花絮或等待某些库来呈现模板。 即使在网络初期,网络服务器也是如此之快,以至于T1线路只能配备低端Intel 486 CPU和少量RAM。 数十亿编码人员的共同努力加上另一层间接寻址已使仅一个内存成为可能,但是静态站点生成器是Web服务器快速发展时期的魔力票。 甚至不必费心用“极端”或“超赞”这样的形容词来修改它。 只需使用一个音节:快速。

缺点:静态网站被剥离

如果您想要快速,为什么不从网页上剥离所有内容呢? 如果您省去了所有雷达GIF和动画风暴,而只用一个数字(温度)替换了所有的花花公子,那么您可以使天气网站变得非常快。 您甚至可以将其打包为一个带符号的字节,其值在-127到128之间,至少直到全局变暖变得非常严重为止。

静态网站速度更快,但是其中的大部分速度来自剥离个性化功能和其他功能。 人们访问网站以获取针对其需求定制的功能和信息。 他们想要的不仅仅是一刀切的所有装配线的简化标准票价。

优点:静态网站很灵活

静态网站生成器可以在您希望更新页面时运行。 在紧急情况下,这可能会立即生效,但也可能是一整夜或每当服务器时间最便宜时。 您甚至可以使用Google提供的那些可打折,可抢占的云实例之一,因为如果作业暂停几次,则没有关系。 您甚至可能让您的个人笔记本电脑在夜间运行,而根本不花时间在云服务器上。

Internet基础结构的许多部分都经过优化,可以立即执行某些操作。 站点工程师着迷于响应消息所花费的毫秒数。 他们担心如何将响应计算分散到许多并行运行的计算机上,这一切让人有些忘恩负义,没有一个好孩子会看到模因并输入“ LOL”。

离线进行处理非常简单。 如果数据库调用需要几秒钟,那没什么大不了的。 如果有人想使用提供更好答案的更好算法,则可以对此进行编码,而不用费力地尝试使许多尝试并行工作的服务器之间的数据保持一致。 别烦了 您有足够的时间(当然是在合理的情况下)。

这是静态站点生成器的讽刺意味。 即使各个网页在概念上都是一成不变的,您也可以花几个小时来做​​得更好。 静态网络生活适用于那些希望以正确方式构建自己的网页,而不是匆匆忙忙地将其丢掉的哲学家,思想家和纯粹主义者。

缺点:静态网站可能会过时

网站被放弃的第一个迹象是底部的版权声明。 如果说去年或更糟,即两三年前,那么您开始对公司的想法就会减少。 这是一个极端的例子,但是对于静态网站来说,过时的位总是有风险的。 他们不提供最新鲜的食物。

当然,精明的网站管理员可以通过在1月1日更新网站并可能每隔几个月推出一些新CSS来应对这一问题。 他们可以以设计师可以调整颜色的最快速度,以新的,更新的外观重新生成所有内容。

而且,是的,静态站点防御者当然是对的,许多页面从未更改。 如果一家公司具有充满活力的使命宣言,并且对这种时尚或趋势做出快速变化的承诺,那看起来就不会太坚定。 如果传递的事实没有改变,为什么我们需要动态的Web代码来重述应该刻画的内容?

尽管如此,仍然很难摆脱静态网站正在提供陈旧和过时的感觉。 它们就像是熟食店角落转角处的蒸汽桌,或者像是在离机场最远的机翼最后一扇门的报摊上的收缩包装三明治。

优点:静态网站可以节俭

静态站点生成器产生大量具有很多重复的页面这一事实是无法回避的。 网站模板的每一部分都在无数静态页面中的每一个中重复。 喜欢计算字节数并担心效率提高的优秀程序员开始心heart。

但为什么? 磁盘空间很便宜。 在撰写本文时,我想知道是否要购买售价为44美元的两TB固态硬盘。 在我撰写本文时, Wikipedia中只有4700万页。 您可以用数百个静态版本的Wikipedia页面填充该2 TB的驱动器,但仍然有很多猫视频的空间。

这些预先计算的静态页面已准备就绪。 便宜的磁盘空间是一种礼物。 用它。

缺点:静态网站可能很浪费

很难确定几个胖驱动器的预先计算出的效率,这些胖驱动器填充了随时可以根据网络上的任何请求跳转的数据。 显然,对于小型网站来说,这可能是一个不错的解决方案。

对于拥有大量数据的大型网站而言,很难证明其合理性。 如果任何人都不需要预先计算的网页,那么浪费在构建网页上的时间就被浪费了。 您启动了整个静态站点生成器以节省时间,但最终却浪费了它。

许多大型的,数据驱动的网站可能充斥着最多每十年访问一次的页面。 每年有多少维基百科页面被访问? 每次设计人员调整外观或更新底部的版权声明时,为所有这些很少使用的页面重新运行静态站点生成器可能会非常浪费。 为什么当有人真正想要读取模板时,为什么不只是拥有一个当前模板并用数据动态填充呢?

优点:静态网站可以使用AJAX

仅仅因为网页本身像直布罗陀的岩石一样不变,并不意味着它的上下是完全静止的。 在呈现页面很长时间之后,一些AJAX调用可以在后台下载额外的数据位。 这些电话可以添加最新的股票价格,天气预报或有关用户帐户的一些个性化详细信息。 仅仅少量的数据就可以增加很多寿命。 如果您将某些数据本地存储在Cookie或本地存储中,则甚至不需要访问网络。 快速呼叫可以检索用户的姓名,生日或基本帐户详细信息,并使页面具有个性化的感觉。

缺点:静态网站缺乏情报

许多动态站点已经非常静态。 如果您浏览基于诸如Drupal之类的框架的网站,就会发现精心设计的智能缓存机制,该机制可在生成页面时存储当前副本。 如果其他人在几秒钟后请求该页面,则他们会从缓存中获取静态版本,而不是动态生成的新版本。

缓存算法可以非常聪明地仅缓存页面上不变的块。 缓存的版本还可以借鉴静态站点手册中的技巧,并使用AJAX和其他JavaScript技巧来更新最新页面。

静态网站和现代网络

多年来,Web服务界已经慢慢创建了内容交付网络(CDN),它们是分布在世界各地的静态内容的本地化缓存。 如果您访问大型动态站点,则许多不变的位(例如徽标GIF)已经缓存在主要集线器附近的许多本地计算机中。 静态内容不会阻塞互联网的骨干网甚至许多较小的卷须。 它来自可能距您的浏览器不到一英里的缓存机。

静态站点生成器可以轻松利用这些CDN,因为CDN旨在与不变的文件一起使用。 生成静态文件后,CDN将完成其余工作并非常快速地交付它们。 静态站点生成器是完美的补充。

解决方案是预先计算尽可能多的页面,以便这些CDN可以尽可能轻松地传递不变的数据。 然后将动态信息与不会阻塞页面渲染的小型轻量级AJAX调用混合在一起。 它是灵活的组合,并适应了现代Web基础结构。

翻译自: https://www.infoworld.com/article/3399556/static-site-generator-pros-and-cons.html

页面静态化优缺点

页面静态化优缺点_静态网站生成器的优缺点相关推荐

  1. PHP实现页面静态化、纯静态化及伪静态化

    概念 php静态化分为:纯静态化 和 伪静态化: 纯静态化又分为:局部静态化 和 完全静态化 纯静态化:是把PHP生成的动态页面保存成静态的html文件,用户访问该静态页面,而不是用户每一次访问都重新 ...

  2. 动态瑜伽 静态瑜伽 初学者_静态网站生成器:初学者指南

    动态瑜伽 静态瑜伽 初学者 Let's say your next project is going to be a simple HTML website for a resumé, marketi ...

  3. html怎么转换成ftl模板,FreeMarker入门+模板静态化+模板字符串静态化

    只是根据模板的内容,将数据模型在模板中显示并输出文件(通常为html,也可以生成其它格式的文本文件) 数据模型:数据模型在java中可以是基本类型也可以List.Map.Pojo等复杂类型 模板 输出 ...

  4. PHP 实现全站静态化 首页静态化 列表页静态化 内容静态化 .

    首先先要把需要静态话的内容发到模版上去 eg.这个是静态化首页的 function staticIndex(){ $newslist = $article->getArticles(null,5 ...

  5. java 非静态语句块_静态初始化代码块与非静态初始化代码块之间的区别是什么?...

    UFF!什么是静态初始化器? 静态初始化程序是static {}Java类中的代码块,并且在调用构造函数或main方法之前只运行一次. 好的!告诉我更多..是一个代码块 static { ... }在 ...

  6. 华为5720设置静态路由不通_静态路由理论知识详解

    一.简介 静态路由是一种需要管理员手工配置的特殊路由. 静态路由在不同网络环境中有不同的目的: 当网络结构比较简单时,只需配置静态路由就可以使网络正常工作. 在复杂网络环境中,配置静态路由可以改进网络 ...

  7. 网站改成静态页面打不开_稳定网站排名的基本条件 - 最蜘蛛池外推快速收录

    原出处:最蜘蛛池 原文链接:稳定网站排名的基本条件 - 最蜘蛛池 下面最蜘蛛池小编为大家详细介绍下稳定网站排名的基本条件. 1.服务器稳定性 网站服务器运行稳定是百度排名的基础,网站经常打不开排名肯定 ...

  8. mysql静态化设计_网站静态化与mysql优化

    一.伪静态 1.正则表达式的回顾 (1)要求取出练习的4个数字 (2)要求取出,形式为:xxx-yyy-xxx的数据 正则中几个概念: 子表达式:简单理解成用小括号括起的部分就是一个子表达式, 捕获: ...

  9. 获取元素到页面顶部的距离_组成网站页面结构的元素有哪些?

    想要做好网站内部优化,必须要了解网站的组成结构,同时也要对网站结构有一个全面的了解.页面结构就是页面内容的格局,是制作页面的重点之一.合理的页面结构不仅有利于搜索引擎的收录,同时还有利于用户体验. 在 ...

最新文章

  1. com组件和一般dll的区别
  2. linux 技巧:使用 screen 管理你的远程会话
  3. SOJ 8064 Whack the Groundhog
  4. linux下dns设置详解
  5. 从零开始入门 K8s | 可观测性:监控与日志
  6. DBProvider 连接 Oracle 10g 数据库的问题
  7. JS中的加号+运算符详解
  8. 【数据结构】——排序算法系列总结
  9. Android(kotlin)之对一组图片数据更新最后的修改时间进行分类显示
  10. 影子场vs.属性访问器接口第2轮
  11. FIFA的完整形式是什么?
  12. Java 提示“找不到或无法加载主类” 解决方法
  13. 犀牛建计算机键盘,犀牛建模基础教程 键盘建模
  14. vscode主题 webstorm_vscode/webstorm快捷键
  15. 51单片机之TMOD寄存器
  16. 2020-12-18
  17. STM32 BKP备份寄存器介绍
  18. NetSuite 库存盘点
  19. 血泪踩坑:没有官方开发版MIUI如何给手机刷机?
  20. [Qt]QMainWindow

热门文章

  1. 循环嵌套思路详解 | 一个“在盒子里过家家”的算法 -- 以冒泡排序与打印菱形为例
  2. jetson nx(emmc版本已设置SSD启动)备份系统并对其他板子进行烧录系统
  3. Wikimedia贡献者分享了他的Linux故事
  4. 微电子新手入门之Cadence常用仿真——NMOS管特征频率仿真
  5. 系统声音服务的使用(播放声音、震动)
  6. CST微波工作室学习笔记—5.设计建模基本操作1
  7. Windows server 2008 r2上安装MySQL
  8. MIM协议与Base64编码
  9. 二本师范类计算机专业的有哪些学校,二本师范类的院校有哪些?
  10. 用vue写卡片切换效果