【问题标题】:What are the steps involved from entering a web site address to the page being displayed on the browser?从输入网站地址到在浏览器上显示的页面涉及哪些步骤?
【发布时间】:2011-02-23 04:23:43
【问题描述】:

从开发人员的角度来看,如何加快流程?

【问题讨论】:

  • 你在开发什么?

标签: url browser performance


【解决方案1】:

发生了很多事情。

当您第一次输入地址时,如果主机名不在浏览器缓存中,浏览器会在 DNS 中查找主机名。

然后浏览器向远程服务器发送 HTTP GET 请求。

服务器上发生的事情实际上取决于服务器;但它应该返回一个 HTTP 响应,其中包括标头,这些标头可能向浏览器描述内容以及允许缓存多长时间。响应可能是重定向,在这种情况下,浏览器将向重定向页面发送另一个请求。

显然,服务器响应时间将是感知性能的关键点之一,但还有许多其他因素。

当服务器返回响应时,浏览器会做一些事情。首先,它将解析返回的 HTML,并从中创建它的 DOM(文档对象模型)。然后它将运行页面上的任何启动Javascript;在页面准备好在浏览器中显示之前。请记住,如果页面包含任何资源,例如外部样式表、脚本、图像等,浏览器必须先下载这些资源,然后才能显示页面。每个资源都是一个单独的 HTTP 获取,这里涉及到一些延迟时间。因此,在某些情况下可以大大减少加载时间的一件事是尽可能少地使用外部资源,并确保它们缓存在客户端上(因此浏览器不必为每个页面视图获取它们)。

总而言之,要优化网页的性能,您至少要查看:

  • 服务器响应时间
  • 带宽/内容传输时间。
  • 确保您有一个小而简单的 DOM(尤其是如果您需要支持 IE6)。
  • 确保您了解客户端缓存以及需要在服务器上设置的设置。
  • 确保让客户端下载尽可能少的数据。考虑 GZipping 资源,或许还可以考虑动态内容(取决于您的情况)。
  • 确保页面加载时没有任何 CPU 密集型 JavaScript。

您可能想阅读HTTP Protocol 以及一些Best Practices。您可以使用的几个工具是 YSlowGoogle Page Speed

【讨论】:

    【解决方案2】:

    从输入网站地址到在浏览器上显示的页面包括哪些步骤?

    步骤如下:

    1. 获取 URL 的 IP 地址
    2. 创建到 IP 地址的 TCP (HTTP) 连接,并请求指定的页面
    3. 通过 TCP/HTTP 接收/下载页面;该页面可能包含多个文件/下载:例如HTML 文档、CSS 文件、javascript 文件、图像文件...
    4. 渲染页面

    从开发人员的角度来看,如何加快流程?

    测量以发现这些步骤中的哪个步骤慢:

    • 只值得优化慢的一步(优化已经很快的步骤没有意义)
    • 您的问题的答案因步骤而异。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-23
      • 1970-01-01
      相关资源
      最近更新 更多