像我们这些用asp.net webForm进行开发的程序员,由于微软的意愿,并没有多少机会来了解网页运作的本质,一切都给我们封装好了.然而当我们学习到一定程度后,就需要对这些个细节进行了解,以更好的进行编程.
下面的这三个东东讲的不错,都是精品中的精品.
在浏览器的解析方面,这篇文章写的不错:
借用其的总结:
页面资源的下载顺序是从上到下的,文档流中先出现的资源先下载(注:存在并发,具体请参考 UA Profiler)。当某一样式下载完成时,会立刻渲染到页面(体现了层叠样式表中层叠在渲染时的含义)。当某一脚本下载完成时,也会立刻解析和运行。脚本的运行严格按照文档流中的顺序进行,deferred 的脚本会在正常脚本运行之后运行(Firefox 和 IE 下)
然后就是页面的渲染,这篇文章写的不错:
浏览器渲染和操作顺序,附谈reflow&repaint对网页性能的影响
1 HTML解析完毕。
2 外部脚本和样式表加载完毕。
3 脚本在文档内解析并执行。
4 HTML DOM 完全构造起来。
5 图片和外部内容加载。
6 网页完成加载。
这也说明了为什么在CSS上内联CSS优先级最高,因为他会引发网页的reflow,也就是重新渲染
然后就是广为流传的网页前端优化:
其实在我看来,程序员能做到的只有:
1. CSS Sprites,避免过多的http请求,http重定向
2. 添加expires头现实浏览器缓存(iis)
3. gzip静态压缩(iis)
4. 样式放在项部且避免用css expression
5. js放在底部
我个人认为对于asp.net webForm而言,后端优化更重要,因为webForm主要用来做行业软件,比如ERP,OA等等,这主要都是内网项目,上面说的那些只有在外网上效果才会比较明显
再来谈谈安全,最近听webcast,里面也谈到了一些安全问题.
最常见的就是Sql注入,跨站与木马了
这三点的共同核心问题就是对客户端传过来的数据的安全验证有漏洞.
sql注入还反映了sql脚本编写上的问题.
最后,我们来看看Yahoo,这个国际巨头是怎么来招人的吧: