为门户网站的前端,有许多说不出的苦楚:有些代码虽然自己也看不下去,
好了废话不多说下面笔者就yahoo的14条军规来总结一下网易财经的前端开发工作1、Make Fewer HTTP Requests众所周知http请求是要开销的减少请求数可以提高网页加载速度。常用的方法合并cssjs以及 Image maps和css sprites等。笔者所在团队的做法是根据功能分开开发然后通过内部系统对jscss进行分组合并这样对于浏览器来说是一个请求但是开发时仍然能还原成多个方便管理和重复引用。值得一提的是网易内部的前端代码发布系统是很值得学习、借鉴的对于fiddler调试和性能优化工作很是方便这里不方便透露更多有兴趣的单独聊哈。而css sprites是指只用将页面上的背景图合并成一张然后通过background-position来取背景。这里笔者并不提倡看到像图片的都用图片来处理就该项目的这些部分都是通过css实现的。作为程序猿新技术我们要及时掌握并加以运用尤其是所谓的大公司更要有这种气魄不要因为某些极品的浏览器不兼容而放弃庆幸的是我们领导也很认同哈哈2、Use a Content Delivery Network (CDN 内容分发网络)简单地讲通过在现有的Internet中增加一层新的网络架构将网站的内容发布到最接近用户的 cache服务器内通过DNS负载均衡(可选根据时间或访问速度来决定访问哪台服务器资源笔者刚到不久没有深入去研究公司这部分底层)的技术判断用户来源访问cache服务器取得所需的内容。这样可以有效减少数据在网络上传输的时间提高速度。相信这个很多公司都有做这里就不多说了。3、Add an Expires Header4、Gzip Components当然这几部分内容后端帮我们完成了3主要通过服务器端脚本设置Cache-Control和Expires完成Gzip的思想就是把文件先在服务器端进行压缩然后再传输。这个压缩率很高基本上可以压缩到原来的1/4。笔者过去是phper所以对这块也略知一二对于前端攻城狮我们还是有必要了解这块的内容。5、Put Stylesheets at the Top我们知道cssCascading Style Sheets (层叠样式表)。层叠即意味后面的css可以覆盖前面的css级别高的css可以覆盖级别低的css。。iefirefox等浏览器在css全部传输完全之前不会去渲染任何的东西。很多浏览器下如IE把样式表放在页面的底部的问题在于它禁止了网页内容的顺序显示。浏览器阻止显示以免重画页面元素那用户只能看到空白页了。Firefox不会阻止显示但这意味着当样式表下载后有些页面元素可能需要重画这导致闪烁问题。所以我们应该尽快让css加载完毕。实际上很多网站也是这么做的当然有需要分屏显示的网站为了让用户看到的首屏页面尽快显示也可以分开放置当然这里要根据具体项目需求来讨论了。实际上笔者该项目也分了三个css文件比如说是延时显示的广告我们为了提高css加载速度也独立出来了放在页面的底部。6、Put Scripts at the Bottom原因首先防止script脚本的执行阻塞页面的下载。在页面loading的过程中当浏览器读到js执行语句的时候一定会把它全部解释完毕后在会接下来读下面的内容。浏览器这么做的逻辑是因为js随时可能执行 location.href或是其他可能完全中断此页面过程的函数即如此当然得等他执行完毕之后再加载咯。所以放在页面最后可以有效减少页面可视元素的加载时间。其次脚本引起的第二个问题是它阻塞并行下载数量。HTTP/1.1规范建议浏览器每个主机的并行下载数不超过2个IE只能为2个其他浏览器如ff等都是默认设置为2个不过新出的ie8可以达6个。因此如果您把图像文件分布到多台机器的话您可以达到超过2个的并行下载。但是当脚本文件下载时浏览器不会启动其他的并行下载。7、Avoid CSS Expressions尽量减少或者不使用css表达式其实大部分可以用js实现。8、Make JavaScript and CSS External把css和js写在页面内容可以减少2次请求但也增大了页面的大小。我们的网站已经对静态文件做了缓存那也就没有2次多余的http请求了。9、Reduce DNS Lookups一次DNS的解析过程会消耗20-120毫秒的时间,在dns查询结束之前浏览器不会下载该域名下的任何东西。所以减少dns查询的时间可以加快页面的加载速度。yahoo的建议一个页面所包含的域名数尽量控制在2-4个。这就需要对页面整体有一个很好的规划。目前我们这点做的不好尤其是对于单纯靠广州收入的网站很多广告投放系统拖累了我们前端攻城狮们也无可奈何。10、Minify JavaScript压缩js和css的作用很显然减少页面字节数。我们的前端部门也有专门做后端的为的是给前端开发提供工具快速开发。Js虽然压缩了降低了可读性但是在调试的时候工具可以将其复原也就是调用本地的这里做法应该赞一个哈11、Avoid Redirects重定向是需要消耗时间的。当然这只是一个例子发生重定向的原因很多比如跳转后面缺少 /等有兴趣的可以去研究研究。12、Remove Duplicate Scripts13、Configure ETags14、Make Ajax Cacheable这几个就不一一细讲了。再有就是讲一下seo方面的问题。1、标签语义化。提供给搜索引擎友好的提示使得每个html标签都有它自己的含义和作用使爬虫理解你写那个到底是个啥玩意。比如这里我们的网易财经这几个文字其实是没展示在页面中的但是我们实际上代码是有写的然后用样式使其隐藏起来。再如幻灯片的切换可能这里的数字没有实际性的作用而且也根本无需显示在页面中很多时候我们就忽略不写了写了反而还要使其文字不出现在页面中(比如设置text-indent值为负的)。其实不然我觉得我们是有必要写上去的这样别人(或机器)能方便的理解我们的真实意图了。这里不得不提的是笔者该项目有些地方却故意跟标签语义化做对比如这里没见过后面跟_ntesquote_这样的标签的吧其实该页面存在大篇幅的这样的标签为的是js统一获取该标签一次性发送请求获取异步数据减少后端负荷。2、权重控制。搜索引擎会根据我们设置的页面权重来划分页面重点比如h1~h6吧其权重依次递减一般h1是页面中重要的元素这里可以设置为网站的logo或其说明文字但不宜过多太多了搜索引擎就不知道该页面到底哪个是重要的了。3、诸如其他的title、alt之类笔者这里就不多说了。

相关新闻

4D毫米波雷达在恶劣环境下的感知优势与实现

4D毫米波雷达在恶劣环境下的感知优势与实现

1. 恶劣环境感知的技术挑战与4D毫米波雷达优势 在工业与地下空间作业环境中,感知系统面临着多重严峻挑战。粉尘、烟雾等悬浮颗粒会造成光学传感器90%以上的性能衰减,而密闭空间内的金属结构则会产生复杂的多次反射干扰。传统LiDAR系统在粉尘浓度达到50mg…

2026/7/4 11:28:36 阅读更多 →
Claude 3与GPT-4 Turbo技术路线对比:白盒可控AI的工程落地逻辑

Claude 3与GPT-4 Turbo技术路线对比:白盒可控AI的工程落地逻辑

1. 这不是巧合,是AI大模型军备竞赛的临界点信号“如何看待Anthropic公司在ChatGPT-4.5推出前,宣布推出Claude 3?”——这句话表面是个问句,实则是一把钥匙,能打开当前大模型竞争格局最真实的切面。我从2022年底开始系统…

2026/7/4 11:26:35 阅读更多 →
XYZ轴机械模组整机设计实战:从建模到运动仿真全流程解析

XYZ轴机械模组整机设计实战:从建模到运动仿真全流程解析

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Claude 随心用,限时 5 折。 👉 点击领海量免费额度 这次我们来看一个专注于XYZ轴机械模组建模设计的实战教程。这个项目不是泛泛而谈的理论,而是直接切入整机设计的完整流程…

2026/7/4 11:24:35 阅读更多 →

最新新闻

MIC1557与PIC18LF26K80硬件选型及定时系统设计

MIC1557与PIC18LF26K80硬件选型及定时系统设计

1. MIC1557与PIC18LF26K80的硬件选型解析MIC1557是一款微型CMOS RC振荡器芯片,采用SOT-23-5封装,工作电压范围2.7V-18V,静态电流仅200μA。与传统的555定时器相比,它省去了频率控制引脚和集电极开路放电引脚,但保留了阈…

2026/7/4 12:16:53 阅读更多 →
AI钓鱼攻击:从原理到防御,构建企业安全免疫系统

AI钓鱼攻击:从原理到防御,构建企业安全免疫系统

1. 项目概述:当钓鱼攻击披上AI的“羊皮” 如果你还认为钓鱼邮件是那种满屏错别字、用蹩脚英文催你点链接的“垃圾”,那你的安全观念可能还停留在五年前。我干了十多年网络安全,亲眼看着攻击手段从“广撒网”的群发垃圾邮件,进化到…

2026/7/4 12:14:52 阅读更多 →
如何永久保存微信聊天记录:免费开源工具让你的数字记忆永不丢失

如何永久保存微信聊天记录:免费开源工具让你的数字记忆永不丢失

如何永久保存微信聊天记录:免费开源工具让你的数字记忆永不丢失 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending…

2026/7/4 12:14:52 阅读更多 →
量子科技中的多样性与包容性实践

量子科技中的多样性与包容性实践

1. 量子科技领域为何需要关注多样性与包容性?量子计算、量子通信等量子科技正在重塑未来技术格局。与传统学科不同,量子科技本质上是一门高度交叉的领域,融合了物理学、计算机科学、材料学、工程学等多个学科。这种交叉性决定了其发展特别依赖…

2026/7/4 12:12:52 阅读更多 →
终极指南:3分钟解决Windows上iPhone USB网络共享驱动问题

终极指南:3分钟解决Windows上iPhone USB网络共享驱动问题

终极指南:3分钟解决Windows上iPhone USB网络共享驱动问题 【免费下载链接】Apple-Mobile-Drivers-Installer Powershell script to easily install Apple USB and Mobile Device Ethernet (USB Tethering) drivers on Windows! 项目地址: https://gitcode.com/gh_…

2026/7/4 12:10:51 阅读更多 →
SaToken实战:密码加密与会话查询的深度整合与应用

SaToken实战:密码加密与会话查询的深度整合与应用

1. 项目概述:为什么我们需要深度整合密码加密与会话查询? 在任何一个需要用户登录的现代Web应用中,安全都是悬在开发者头顶的达摩克利斯之剑。我们常常会陷入一种“头痛医头,脚痛医脚”的困境:用户注册时,我…

2026/7/4 12:10:51 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻