从URL到页面,如何优化性能?

URL输入到页面加载期间的性能优化总结 URL输入到页面加载期间的性能优化总结。 从URL输入到页面显示,这期间具体发生了什么?并从中总结出可以优化页面加载速度的点。 DNS解析> 阅读详情

从输入URL之后,浏览器先做DNS解析,即将URL解析为唯一的ip地址,全互联网服务器都各自有一个唯一的ip地址,但一个ip地址可能是对应对台服务器,因此在获取资源是通过唯一的ip地址定位的。

DNS解析也是有一个过程的。以www.taobao.com为例,大致解析过程为:

①本机向local dns请求www.taobao.com

②local dns向根域请求www.taobao.com,根域返回com.域的服务器IP

③向com.域请求www.taobao.com,com.域返回taobao.com域的服务器IP

④向taobao.com请求www.taobao.com。

这里会涉及到一个重定向问题,比如输入的URL为https://taobao.com会被重定向到https://www.taobao.com。

为什么要这么做,第一是为了可以把两种方式的访问量累计到一起在一些搜索方面积累优势,

第二则是如果两个地址去访问的话对缓存问题存在一些不友好。

定位到ip地址后,向该服务器发起http请求,下载网页资源。

浏览器工作是边解析边渲染,其实下载html资源时间消耗很小,主要时间用于构建DOM树。


获取到HTML文件资源后:

众所周知,浏览器引起加载解析是自上而下的。

一、浏览器开始显示HTML,在没有接受全部HTML的时候已经开始显示;

二、浏览器发送获取嵌入HTML中的对象请求,比如CSS文件,JS文件,图片等等的资源。

这些请求其实也都和HTML获取经历一个类似的过程,也有DNS解析等等。

但和动态资源不同的是,这些静态资源可以做缓存,不需要每次都从服务器去获取。

三、最后展现完整的页面。

这三个步骤中,大家应该知道一下两点:

1.CSS文件会阻塞所有DOM渲染,但不阻塞DOM解析;

2.JS文件不仅阻塞其后面的DOM渲染也阻塞DOM解析。因为JS和UI是共用一个线程的。

因此要在HTML加载之前把CSS加载解析完毕,在最后才引入JS,则不会影响在它之前的流程,也能够显示页面(优雅降级,即使JS出错)。

另外也存在js中会有改变某个DOM元素的样式,但若CSS还未解析,如style.width等属性还未生成则会报错。

这也就是为什么外部JS文件放在body之后引入,CSS文件放在head内引入。


那么基于这些过程,能够如何优化性能呢?


首先,我们应该了解浏览器渲染过程中,有reflow和repain两个概念。

reflow是改变盒子大小,成本极高,应该会改变整个DOM布局;repain则是改变颜色等一些只影响本身的属性,成本较低。

一、因此在初始化过程中尽量避免用JS去reflow导致性能受较大的影响。

二、CSS选择器匹配机制是自右向左的!!!什么意思呢,很多人往往写样式的时候会习惯#id .xx .xx .xx p a等等,

查找步骤其实是先全页中匹配到a标签,然后再向上遍历到根节点#id为止。

这样的写法是比较消耗性能的,那么很明显,最右边的选择器是标签选择器必然会消耗很大的性能要避免;同时,如果是唯一的id选择器那么速度则会很快。

三、本文上面也有讲到,对于一些静态资源可以做缓存来提高页面加载速度和性能,关于http请求缓存相关内容,可出门左拐哈=>http请求缓存

四、减少http请求,压缩代码等等,雅虎前端优化规则等等之类的可以逐一进行学习。


matlab/simulink saw谐振器仿真,基于Matlab的SAW模态耦合模型的仿真研究 第32卷 第 4 期Vol. 32 No. 4重 庆 理 工 大 学 学 报 (自然科学)Journal of Chongqing University of Technology( Natural Science)2 0 1 8年 4 月Apr. 2018doi : 10.3969/j . issn. 1674-8425(z). 2018.04.002本文引用格式 :李志鹏,马龙祥,孟旭,等•基... 阅读详情

相关推荐

iphone查看/private/var/mobile/Containers/Data/Application/文件

xcode查看iPhone的private/var/文件夹xcode连接iPhone真机选择app下载Containers文件夹到mac电脑中查看手机中下载的文件 使用xcode真机调试的时候,文件目录都是这种/private/var/mobile/Containers/Data/Application/FAEFDF4D-5CE4-474F-9C53-C19789DB59F6/tmp/ xcode连接iPhone真机 不需要越狱,使用xcode上连接iPhone,然后选择运行的app,选择window-&g

小手琴师的博客 101万+

从输入 URL 开始,聊一聊浏览器、网络等相关的知识

前置内容 浏览器主要进程浏览器是多进程的,主要分为:浏览器主进程:只有一个,主要控制页面的创建、销毁、网络资源管理、下载等。第三方插件进程:每一种类型的插件对应一个进程,仅当使用该插件时才...

前端达人 701

FMC/FSMC/EXMC总线NORFlash/PSRAM接口(异步-复用-不突发/同步-复用-突发)

目录 1 简介 1.1 框图 1.2 接口定义 1.3 读写时序图、时序配置参数 1.4 PSRAM控制器异步工作模式分类 1.5 PSRAM寄存器配置 1.5.1 控制寄存器BCR 1.5.2 片选时序寄存器BTR 1.5.3 写入时序寄存器BWTR 2 FPGA接口设计 2.1 实际配置的时序 2.2 接口信号处理 3 参考文献 1 简介 使...

leixj的博客 2万+

页面性能优化

页面性能优化

Z_J_Xx的博客 1580

CISSP/CCSP证书到手后别松懈!保姆级维持攻略:CPE积分怎么攒?年费怎么交?

本文为CISSP/CCSP持证者提供详细的维持认证攻略,重点介绍如何高效积累CPE积分和避免年费缴纳中的常见问题。通过免费与付费资源结合的策略,帮助持证者轻松完成年度认证要求,同时利用认证创造职业价值。

weixin_30859423的博客 417

保姆级教程:在树莓派4B上用V4L2驱动USB摄像头(附完整代码)

本文提供树莓派4B上使用V4L2驱动USB摄像头的完整教程,涵盖环境配置、V4L2架构解析、代码实现及问题排查。通过详细步骤和完整代码示例,帮助开发者快速掌握嵌入式Linux下的摄像头驱动开发,解决实际应用中的兼容性和性能问题。

weixin_30312563的博客 382

码云使用入门教程

    第一步、先要在码云上面创建一个空的项目:然后填个项目名称就行了,项目介绍可填可不填。               第二步、创建成功后,获取到其URL就行了。     第三步、就是到Eclipse上面去把自己的项目上传到码云上面来。      对着项目右键,点击team下的share project 点击share project只有,跳转到如下页面 ...

weixin_30810583的博客 3224

手把手教你排查Abaqus中的Johnson-Cook损伤参数:避免因d3正负号导致的仿真失败

本文详细解析了Abaqus中Johnson-Cook损伤参数d3正负号设置的关键问题,帮助用户避免因参数错误导致的仿真失败和Excessive distortion报错。通过对比不同文献定义、提供实操指南和典型错误排查流程,有效提升非线性分析的准确性和效率。

weixin_33960567的博客 356

网页性能优化

1. 网络加载 ⑴ DNS预加载 通过dns-prefetch属性可以让浏览器提前解析资源或接口对应的服务器IP地址,避免在请求中发起DNS解析请求,节省请求时间。 ⑵ CDN加速 CDN的优点:  本地Cache加速,加快访问速度  镜像服务,消除运营商之间互联的瓶颈影响,保证不同网络的用户都能得到良好的访问质量  远程加速,自动选择cache服务器  带宽优化,分担网络流量,...

zl13015214442的博客 6917

超导电动悬浮系统一体化地面线圈电-热-力特性研究——基于ANSYS Maxwell与Workbench的多物理场联合仿真

摘要:超导电动悬浮(EDS)系统的地面线圈在运行中面临电-热-力多物理场强耦合挑战。本文基于ANSYS Maxwell和Workbench平台,提出一套联合仿真方法,对地面线圈进行高保真多物理场耦合分析。研究通过建立参数化三维电磁模型,计算瞬态涡流损耗和电磁力分布,并顺序耦合至热分析和结构分析,揭示电-热-力特性的相互影响机制。该方法为地面线圈的优化设计、材料选型和可靠性评估提供了理论依据和仿真工具支撑。 关键词:超导电动悬浮;地面线圈;多物理场耦合;联合仿真;ANSYS

huanghm88的专栏 376

深入理解 DDR5 Bank Group 与并行调度机制

Bank Group架构和并行调度机制,是DDR5性能跃升的核心秘密!理解它们才能写出高效调度程序,设计出性能强劲又稳定的DDR5系统。🎯记住:Bank Group不是简单的分组,而是高速并行的“魔法钥匙”,巧用它,你的DDR5设计将爆发惊人性能!

weixin_43199439的博客 314

有利于网站的URL优化方法是什么?

有利于网站的URL优化方法是什么?

软希网分享源码的博客 470

【逐函数讲解ORB_SLAM3源码】获取普通帧率、关键帧、IMU数据

获得imu的旋转 mRwc * mImuCalib.mTcb.rotationMatrix(); Sophus::SE3 mTwc 创建ORB_SLAM3系统 Create SLAM system. It initializes all system threads and gets ready to process frames. ORB_SLAM3::System SLAM(argv[1],argv[2],ORB_SLAM3::System::IMU_RGBD, true, 0, file_nam

小秋 AI SLAM 入门实战教程 1245

深入解析:从URL到页面渲染的完整过程与性能优化【页面渲染、重排、重汇】

从用户输入URL到页面最终渲染,整个过程涉及网络通信(DNS查询、TCP连接)、资源加载(HTML、CSS、JavaScript)、解析与执行(构建DOM、CSSOM、执行JavaScript)、渲染优化(布局、绘制、合成)。这一系列步骤的高效执行依赖于现代浏览器的渲染引擎和多种性能优化技术,以提供流畅的用户体验。优化网页性能的核心在于减少不必要的重排和重绘操作,尤其是在复杂的应用场景中,频繁的布局计算和绘制会显著影响用户体验。

qq_22841387的博客 2102

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

从输入URL地址到看到页面,到网络性能优化

从输入URL地址到看到页面,中间经历了什么? URL解析 缓存检查 DNS解析 TCP三次握手 数据传输 TCP四次挥手 页面渲染 第一步:URL解析 地址解析 协议 默认端口号 传输协议 http 80 超文本传输协议 https 443 在http的基础上进行了安全设置(SSL/TSL)证书认证 ftp 21 主要用于客户端电脑和服务器端的文件传输 URL的编码 对于一些特殊字符,我们在客户端和服务器端传递的时候,需要进行解码和编码 encodeURI、de.

wangxinyue_blog的博客 344

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

base64:URL背景图片与web页面性能优化

转载自:http://www.zhangxinxu.com/wordpress/2012/04/base64-url-image-%E5%9B%BE%E7%89%87-%E9%A1%B5%E9%9D%A2%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/ 小tip: base64:URL背景图片与web页面性能优化 这篇文章发布于 2012年04

mozuncangtianbaxue的博客 619

从输入url到页面展示发生了什么?其中再页面渲染以及网络请求响应的性能优化方面,我们分别可以做哪些优化工作?

从输入url到页面展示发生了什么?其中再页面渲染以及网络请求响应的性能优化方面,我们分别可以做哪些优化工作?

qq_41552234的博客 255

性能优化之从URL到页面展示

本文发于微信公众帐号: 一界码农(The_hard_the_luckier) 无需授权即可转载; 甚至无需保留以上版权声明…今天从性能优化的角度再来看看从URL到页面展示,前两...

weixin_43392568的博客 323

从输入url发生了什么,谈前端页面性能优化

旨在发散思路,具体可以自己分析并实践

illusion_melody的博客 284

15 行代码出图:MOSS-Image-SFT 本地文生图部署与版面控制完全指南

MOSS-Image-SFT 是 OpenMOSS 团队推出的监督微调(SFT)版文生图模型,支持中英文提示词、图内中文文字渲染,还能用 JSON Layout 精确控制版面。这篇文章把本地出图的完整链路走一遍:装环境、跑出第一张图、讲清采样参数、掌握 Layout 布局控制,最后整理一份踩坑速查表。 读完能带走三样东西:一套可直接复制运行的环境安装与生成脚本、一份逐参数解释的默认设置说明,以及

gitblog_00346的博客 870

从输入url到页面渲染可以做哪些性能优化?

上一篇我们罗列了从输入url到页面渲染到底经历了什么?那我们今天再来说说这个步骤中,我们能做哪些的性能优化? DNS Prefetch 上一篇文章只说了浏览器访问一个域名的时候需要经过DNS解析。其实DNS解析是有一个解析过程的,按浏览器缓存、系统缓存、路由器缓存、ISP(运营商)DNS缓存、根域名服务器、顶级域名服务器、主域名服务器的顺序,逐步读取缓存,直到拿到IP地址。 通过主机名加载一个页面通常仅需要解析DNS一次,但是如果页面的资源文件比如:fonts、images、scripts等都是不同的主机名

sinat_34798463的博客 649

深入解析浏览器渲染全流程:从URL输入到页面渲染的底层原理与性能优化(附实战代码)

涵盖DNS解析、TCP/TLS握手、HTTP请求、DOM/CSSOM构建等核心阶段,结合代码示例与性能调优技巧,助你掌握浏览器底层运行机制。ServerHello (选定密码套件) + Certificate + ServerFinished。:你在项目中如何优化首屏渲染速度?欢迎在评论区分享实战经验!ClientHello (支持的密码套件)

前端御书房 1210

从URL到页面渲染:一次完整HTTP请求的深度架构解析与企业级性能优化实战

一次完整的HTTP请求涉及从客户端到服务端的完整技术栈,理解这个全过程对于架构师来说至关重要。这不仅有助于系统性能优化,更是设计高可用、高并发系统的基础。关键架构洞察DNS解析是全局负载均衡的第一环,基于GeoDNS的智能路由提升用户体验TCP三次握手建立可靠的端到端连接,内核参数调优决定并发处理上限TLS握手构建安全加密通道,前向安全设计保护数据机密性L4/L7负载均衡分层架构实现流量智能分发和高可用应用服务器过滤器链确保安全性和可观测性,异步处理提升资源利用率。

weixin_42079748的博客 1228

从请求一个url到请求响应和页面渲染,有哪些可以做到性能优化的工作?

四、从浏览器发起请求到页面能正常浏览都有哪些阶段(process)? 预处理——>DNS解析——>建立连接——>发起请求——>等待响应——>接受数据——>处理元素——>布局渲染 五、性能优化的具体方法(way) 一)内容层面,优化网络连接 1、DNS解析优化,减少DNS路由查询(DNS缓存、减少DNS查找、keep-alive、适当的主机域名) ...

weixin_39307273的博客 1285

深入探究“在浏览器输入URL到渲染页面”(中)性能优化

前言 关于这道经典的面试题,笔者准备写三篇文章来对知识点进行深度和广度的挖掘: 深入探究“在浏览器输入URL到渲染页面”(上)过程剖析 深入探究“在浏览器输入URL到渲染页面”(中)性能优化 深入探究“在浏览器输入URL到渲染页面”(下)模拟面试 正文 在 第一篇文章 中写到,用户在输入 url 并回车之后,浏览器经历了下面这些阶段:重定向 → 拉取缓存 → DNS 查询 → 建立 TCP 连接 → 发起请求 → 接收响应 → 处理 html 元素 → 页面进行渲染。因此性能优化也可以从这几个阶段入手:

Syandeg的博客 349

小tip: base64:URL背景图片与web页面性能优化

http://www.zhangxinxu.com/wordpress/2012/04/base64-url-image-图片-页面性能优化/ 转载于:https://www.cnblogs.com/anyaran/p/4355872.html

diaosheng8387的博客 110

web前端性能优化 -- 从浏览器输入url到页面加载完成全过程解析

本文将从浏览器输入url到页面加载完成中经历的各个阶段来探讨web前端性能可以优化的点 1、浏览器输入URL并按下回车 无优化点 2、浏览器查找当前URL是否存在缓存 彻底弄懂HTTP缓存机制及原理 传送门:https://www.cnblogs.com/chenq... 优化点 服务器对静态资源设置浏览器缓存信息,浏览器在有缓存的情况下...

weixin_33709590的博客 1306
上一篇: HTTP请求跨域问题,解决模棱两可。
下一篇: 如何新建typescript配合webpack项目
luke_up
博客等级 码龄12年 19粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值