1、web前端看哪些书籍好,前端开发书籍大全
1、HTML/HTML5基础:
《HTML5秘籍》
2、CSS
推荐书籍:
1、《图灵程序设计丛书:HTML5与CSS3设计模式》
2、《Web开发技术丛书:深入理解Bootstrap》
3、《高流量网站CSS开发技术》
4、《CSS设计彻底研究》 这个一定要
5、《Web开发技术丛书:深入理解Bootstrap》
6、可以找一些专门讲SASS的书,但是我没找到
7、《CSS权威指南(第3版)》
3、深入学习JS
推荐书籍:
1、《单页Web应用:JavaScript从前端到后端 》
2、《Web 2.0界面设计模式》
3、《响应式Web设计:HTML5和CSS3实战》
5、工具
学会使用grunt进行JS、CSS、HTML 压缩,特别是模块化js开发时候的压缩
会用PS进行切图、保存icon
入手sublime、webstorm
学会使用chrome调试面板,特别是:console、network、profile、element
进阶:
4、性能
推荐书籍:
1、《Web性能权威指南》
2、雅虎网站页面性能优化的34条黄金守则
5、HTTP及TCP协议族
推荐书籍:
1、《HTTP权威指南》
2、《TCP/IP详解》
3、《图解TCP/IP(第5版)》
请使用手机"扫一扫"x
2、为什么下什么东西都下不了,总是弹出:""Internet Ixplor 点不可用,或找不到
解决方案:
一、打开控制面板-->添加删除程序,列出已装程序,去找比如“一搜”,“雅虎助手”,“易趣”,“3721”,“中文域名,或什么实名”,“某某工具条” ,“什么搜索,什么工具条”啊,全部卸载,这些都是臭名招著的“流氓软件”,一个不能留。
二、 卸载插件,推荐使用windows优化大师,因为它有恢复功能,避免被您错误的卸载系统必须的插件,而且它可以管理的查件非常多。优化大师版本如果是7.1或以上的,这个插件管理功能在[系统性能优化]-->[系统安全优化]-->[附加工具]-->[IE插件管理],选中一个,点下面的[卸载]即可,如果想恢复,点[恢复],然后选中要恢复的项目即可,非常安全方便。
三、光卸载了它们还是不行,在你访问网站的时候,你仍然会被蒙着自动装到你的计算机里面。所以要免疫它们。这里介绍用upiea.exe,[下载地址:http://www.sheok.com/upiea.exe]不用安装,运行打开后,点[插件免疫],界面下面的下拉菜单,选择[选择当前分类的全部插件]-->点[应用]。如果您经常上国外的网站,请点上面的[国外]重复刚才操作即可,其他的不用免疫。这样就算已经成功了一大半了。
四、下载最新杀毒软件杀一下毒
这里用金山毒霸(我对这个比较熟悉),目前是可以免费下载并永久使用。
下载地址:
http://download.union.kingsoft.com/union/source/downloadDb.php?uid=22142&sid=0
如果你的机器是第一次装金山毒霸,在软件的提示下你注册一个金山通行证,你可以免费升级7天。安装后->安装文件夹下的KASMain.EXE,其官方名字是“金山反间谍 2006”,界面很简单,功能就两个:扫描和修复。但是扫描功能基本上没有用,因此我们直接点开修复界面。
◇ 首先可以看到上面的部分有两个按钮:一键修复和高级修复,假如你对系统不太熟悉,请用一键修复,软件会自动帮您修复的,当然你也可以尝试点开高级修复(要知道电脑知识就是这样一点点积累起来的),懂一点的可以用高级修复。修复后,可以帮您卸载掉一些流氓软件的插件。
◇ 下面一栏的工具箱也有用处:历史痕迹清理,单击点开后—>点击[全选/全不选]可以看到列表中全部钩上了-->点[清除]。这一步是删除所有临时文件,因为有些流氓软件删掉或卸载后死灰复燃就是因为-->它们的安装程序往往就隐藏在不被大家注意的临时文件夹中!
◇ 进程管理器也有很有用,点开后,跟系统自带的任务管理器有点相似。这里介绍两个很重要的功能,其一,它可以显示进程程序所在的地址,而且点右键的菜单“转到模块目录” 功能能直接进入进程所在的目录。这对手动清除病毒(详细介绍:http://)很有用!另外的一个功能就是右键弹出菜单-->模块文件属性 功能,如果你觉得自己的电脑有问题,并怀疑某个进程是病毒,请用鼠标单击这个进程,右键单击后,点[模块文件属性],如果属性对话框中的版本内容为空,则请你坚决把该进程结束掉,这个进程很大程度有问题!而正常的进程的属性都是有版本信息的,包括公司名称,版本号等。
/*题外话:许多朋友对任务管理器中显示的进程名称都不甚了解,不知道哪些进程是系统进程,而哪些进程又是病毒程序。其实要是你经常打开任务管理器,你就会知道哪些是系统进程了,可以参见常见系统进程表:http://www.hn0943.com/huining/showjs.asp?js_id=41 */
◇ 金山反间谍软件 修复界面下面一栏的右边还有个小三角,点开后出现了”启动项清理“功能”按钮,点开后列出了所有的开机要启动项目。虽然功能没有windows xp中自带的msconfig那么多,但是比它方便易用,如果你对系统不熟悉的话,而您的电脑又不是办公室的电脑,你可以将这些启动项目(除了几个输入法外)全部删除。这样会大大加快机器运行速度!!也可以排除一些病毒的运行。
◇ 最后你将毒霸升级到最新版本,打开金山毒霸的主程序,完全杀毒后,把金山毒霸的安装目录复制到其他地方备份一个,然后将刚装上的
金山毒霸卸载!这样的目的是不让金山毒霸自动运行,什么“防火墙之类”都是没有用的,只会消耗系统的性能。下次要用金山毒霸,可以到备份的地方运行它。
从新启动计算机,哈哈大功告成了,你的计算机将比“奔腾5”还要快!
/*巧妙使用金山毒霸的方法*/
http://还没有写出来
有什么问题可以给我发邮件:[email protected].
----------------------------------------------
爱你就是这么莫名其妙,是这么义无返顾,知道我不会是你今生的唯一,你却是我一生的最爱!
--------------------
免费下载 金山毒霸 http://union.kingsoft.com/union/download/index.html?uid=22142
3、请问各位怎样才能删除每次开机自动弹出的广告程序啊?
常见的“浏览器绑架”症状可能有以下一些(仅是举例,绝非全部症状):
*被重定向到恶意网页
*当输入错误的网址时被重定向
*输入字符时IE速度严重减慢
*重启动后IE主页/搜索页被更改
*不请自来的受信任站点
*收藏夹里自动反复添加恶意网站
*在使用Google和Yahoo等著名搜索引擎搜索时出现某些弹出窗口
*IE 选项卡中出现不能更改或被隐藏的项目
*不能打开 IE 选项卡
……
如果您的浏览器出现这类症状,就提示您可能遭遇了浏览器劫持。当然,您还可以通过一些对付广告/间谍软件、浏览器劫持的专门工具来检测和修复这些问题。清除广告/间谍软件前请注意,如果它们是随同某个免费软件安装的,清除了它们之后,该免费软件很可能无法继续正常使用。
请首先使用最新版杀毒软件在安全模式查杀病毒、木马。
进入安全模式的方法:重新启动电脑,开机检测完后,按[F8]键(可以一直按到启动菜单出来为止),选择安全模式进入Windows。
其次,提醒您一下,某些广告程序(尤其是一些没有被杀毒软件列入查杀名单的)会在控制面板的“添加删除”中留下卸载项目,在进行下一步之前您不妨试试看。
再次,建议您不妨先尝试一些现成的对付“浏览器绑架”、间谍软件、广告程序的免费工具。比如——Spybot-Search&Destroy、Ad-aware、CoolWebSearch Shredder (CWShredder.exe)等等。
如果您遇到的那些恶意网页是英文的,这些软件常常能帮上您的忙。
最后,如果这些软件不起作用,您还可以尝试使用HijackThis扫描并修复。如果您对HijackThis扫描日志中某些项目不清楚,请不要贸然自行修复,不妨先使用搜索引擎在互联网上查找一下。
参考资料:http://bbs.dvbbs.net/dispbbs.asp?boardID=18&ID=911685&page=1
4、优化投入产出比的四大黄金法则是什么?
图11-6-1 四大黄金法则
预期交流,持续进行
预期交流,持续进行是为了提高网络营销的合作绩效,从而促进营销工作的长久发展。通常,需要网站营销人员将原计划中的合作方分类,通过与合作方的长期接触与与沟通进行更有针对性地交流。那么,营销人员就要提前向各方发布预期交流的信息,最好是有周期性的将相关信息发布给客户,使每一步都走的更有价值。
广泛利用媒体支持
媒体支持永远是网站生存及营销推广的绿色通道。而所有媒体中,广告媒体则是充满无限商机的一块“老姜”。广告媒体的表现形式主要有文章、网络视频的链接、产品数据、通栏等,能够有效地提高网站销售额。因此,优化网络营销投入产出比不可无视的一点就是要广泛利用媒体的支持,唯有如此才能使网络营销更加适应系统环境,提高订单转化率。
利用有效的跟踪技术
跟踪技术是指通过高质量、精确的数据跟踪使用户与商家之间实现技术上的匹配。从而通过记录网站的潜在商机与销售额等一系列方法优化最终结果。其主要跟踪方法包括:转换跟踪、对话跟踪、浏览跟踪、指纹跟踪、终生跟踪、浏览跟踪以及购物车跟踪和最小标准跟踪。
开展合作伙伴计划
网络营销离不开合作伙伴的有力支持,一个人的战场注定是失意的。孤注一掷也无法将产品做大做强。因此对投入产出比评估的优化还包括合作伙伴计划,其具体要求是营销人员有一家有效、高效的网店。另外要注意的是:购物流程尽量简单,步骤不宜过多;不强行要求用户填写无用的用户信息;订购流程务必严谨、明确,不能模棱两可;对付款流程及双方的责任要有详细的说明。
5、如何提高网站页面速度?
网页的加在一半就是代码的加载,各种文件,以及一些因素,那么就从这些因素去考虑就可以:
1、合并Js文件和CSS
将JS代码和CSS样式分别合并到一个共享的文件,这样不仅能简化代码,而且在执行JS文件的时候,如果JS文件比较多,就需要进行多次“Get”请求,延长加载速度,将JS文件合并在一起后,自然就减少了Get请求次数,提高了加载速度。
2、Sprites图片技术
Spriting是一种网页图片应用处理方式,它是将一个页面涉及到的所有零星图片都包含到一张大图中去,然后利用CSS技术展现出来。这样一来,当访问该页面时,载入的图片就不会像以前那样一幅一幅地慢慢显示出来了,可以减少了整个网页的图片大小,并且利用CSSSprites能很好地减少网页的http请求,从而大大的提高页面的性能。CSSSprites在国内很多人叫css精灵,很早就有了,在很多大型网站都有用到,特别是一些所有页面都存在的图标用得比较多,很好的提升加载速度。
3、压缩文本和图片
压缩技术如gzip可以有效减少页面加载的时间。包括HTML,XML,JSON(JavaScript对象符号),JavaScript和CSS等,压缩率都可以在大小70%左右。文本压缩用得比较多,一般直接在空间开启就行,而图片的压缩就比较随意,很多都是直接上传,其实还有很大的压缩空间。
4、延迟显示可见区域外的内容
为了确保用户可以更快地看见可见区域的网页可以延迟加载或展现可见区域外的内容,为了避免页面变形,可以使用占位符标签制定正确的高度和宽度。比如WP的jQueryImage LazyLoad插件就可以在用户停留在第一屏的时候,不加载任何第一屏以下的图片信息,只有当用户把鼠标往下滚动的时候,这些图片才开始加载。这样很明显提升可见区域的加载速度,提高用户体验。
5、确保功能图片优先加载
网站主要考虑可用性的重要性,一个功能按钮要提前加载出来,用户进入下载页,一个只需要8s时间的下载花了5s在等待、寻找下载按钮图片,谁能忍受?
6、重新布置Call-to-Action按钮
其实这个和上面一条是差不多的,都是从用户体验速度着手,跳过了网页的整体加载速度。速度没变,只是让一些行为按钮提前,Call-to-Action按钮一般习惯设计在页面底部,这样的习惯对于用户来说并不总是好的,购买用户需要等到最下面加载出来才能点击下一步操作。可以调整CTA按钮的位置或使用滑动的图片按钮。很多大型购物网站的加入购物车就是这种类型。
7、图片格式优化
不恰当的图像格式是一种极为常见的减慢加载速度的罪魁祸首。正确的图片格式可以让图片缩小数倍,如果保存为最佳格式。可以节省大量带宽,减少处理时间时间,大大加快页面加载速度,这是一种很常见的做法。
8、使用 Progressive JPEGs
ProgressiveJPEGs图片是JPEG格式的一个特殊变种,名为“高级JPEG”。在创建高级JPEG文件时,数据是这样安排的:在装入图像时,开始只显示一个模糊的图像,随着数据的装入,图像逐步变得清晰。它相当于交织的GIF格式的图片。高级JPEG主要是考虑到使用调制解调器的慢速网络而设计的,快速网络的使用者通常不会体会到它和正常JPEG格式图片的区别。对于网速比较慢的用户,这无疑有很好的体验。
9、精简代码
这个可以说是最直接的一个方法,也是用得比较多的,对网页代码进行瘦身,删除不必要的沉冗代码,比如不必要的空格、换行符、注释等,包括JS代码中的无用代码也需要清除。其中对于注释代码的清除可能有些人存在误区,甚至有的在里面堆砌关键词。
10、延迟加载和执行非必要脚本
网页中有很多脚本是在页面完全加载完前都不需要执行的,可以延迟加载和执行非必要脚本。这些脚本可以在onload事件之后执行,避免对网页上重要内容的呈现造成影响。这些脚本可能是自己网页的甲苯,往往更多的是一些第三方脚本,这样的有很多,比如评论、广告、智能推荐、百度云图、分享等等,这些完全可以等主体内容加载完后再执行。
11、使用AJAX
AJAX即“Asynchronous Javascript +XML“,是指一种创建交互式网页应用的网页开发技术。通过在后台与服务器进行少量数据交换,AJAX可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用AJAX)如果需要更新内容,必须重载整个网页面。
12、自动化的页面性能优化
自动化的页面性能优化也就是借助工具了,网站提速工具有很多,这里Radware推荐了自家的RadwareFastView,也算Radware给自家做了一个广告,这里不多说了。
6、雅虎团队35条黄金定律是什么时候提出的
雅虎团队35条黄金定律之一
减少http请求次数
80%的响应时间花在下载网页内容(images, stylesheets, javascripts, scripts, flash等)。减少请求内次数是缩短响应时间的容关键!可以通过简化页面设计来减少请求次数,但页面内容较多可以采用以下技巧。
1. 捆绑文件: 现在有很多现成的库可以帮你将多个脚本文件捆绑成一个文件,将多个样式表文件捆绑成一个文件,以此来减少文件的下载次数。例如在asp.net中可以使用ScriptManager,asp.net MVC中的Bundling。
2. CSS Sprites: 就是把多个图片拼成一副图片,然后通过CSS来控制在什么地方具体显示这整张图片的什么位置。给大家看个熟悉的Sprites实例。
7、怎么测试一个网站的性能啊?
网站性能工具Yslow的使用方法
Yslow是雅虎开发的基于网页性能分析浏览器插件,从年初我使用了YSlow后,改变了网站模板大量冗余代码,不仅提升了网页的打开速度,这款插件还帮助我分析了不少其他网站的代码,之前我还特意写了提高网站速度的秘籍,就是通过这款插件分析得出的。网络上已经有不少Yslow使用说明了,本文我想介绍下我使用Yslow的方法和一些别人没提到的小技巧。
Yslow的安装方法
现在Yslow已经有很多版本了,打开Yslow官网就能看到有四个版本可供选择:火狐(firefox)浏览器、谷歌(chrome)浏览器、欧朋(opera)浏览器和移动版。
安装Yslow要先安装 Firebug(本地址以火狐为例),两种方法启动Yslow:1、打开Firebug窗口,选择Yslow选项。2、直接点击火狐右下角的Yslow启动按钮。
JSLint是一个强大的工具,它可以检验HTML代码以及内联的Javascript代码,通过JSLint发现了google analytics上的一个js错误。
ALL JS:查看你这个网页上一共引用了多少JS。
All JS Beautified:把所有JS放在打开的页面中,利用站长统一检查(我感觉作用不大)。
All JS Minified:同上,但它显示的是压缩过的js代码,如果你要JS优化,它已经给你优化好了,来过来直接用。
All CSS:显示你网页所有CSS文件。
YUI CSS Compressor:显示网页压缩后的CSS文件,也是拿过来可以直接用的。
All Smush.it™:图片在线优化网站,点击它后会自动跳到smushit网站上给你自动优化CSS图片,该网站提供了优化前与优化后的对比,点击直接下载优化后的图片,在覆盖到自己网站上就可以了,强烈推荐。
Printable View:这个是打印用的,部门开会、前端设计师讨论、向老板汇报时估计用的上。
我目前在用,希望对你有帮组
8、急!!! 如何让雅虎图片搜索关键词显示自己的图片? 如何让雅虎搜索关键词后显示自己的网站??
这个很简单你在雅虎新闻或者雅虎其他的平台发几张你的图片,然后雅虎图片可能过一段时间就会搜路,想显示你的网站这个就需要seo优化了。
9、如何进行网站性能优化
内容页面优化就一个要点:你的访客要看到什么内容你就做什么内容。建议你以一个访客的角度来看你自己的网站,内容是否完善、页面是否好看、框架是否清晰……做好这些就算是内容优化了。
10、网站性能优化怎么办
一、前端优化
网站性能优化是一个很综合的话题,涉及到服务器的配置和网站前后端程序等各个方面,我只是从实际经历出发,分享一下自己所尝试过的网站性能优化方法。之所以在标题上挂一个web2.0,是因为本文更偏重于中小网站的性能优化,我所使用的系统也是典型web2.0的LAMP架构。
首先讲讲前端的优化,用户访问网页的等待时间,有80%是发生在浏览器前端,特别是页面和页面中各种元素(图片、CSS、Javascript、 flash…)的下载之上。因此在很多情况下,相对于把大量的时间花在艰苦而繁杂的程序改进上,前端的优化往往能起到事半功倍的作用。雅虎最近将内部使用的性能测试工具yslow向第三方公开,并发布了著名的网站性能优化的十三条规则,建议你下载并安装yslow,并作为测评网站优化效果的工具。下面我挑其中特别有价值的具体说明一下优化的方法:
对于第一次访问您网站,尚未在浏览器cache中缓存您网站内容的用户,我们可以做的事情包括:
1)减少一个页面访问所产生的http连接次数
对于第一次访问你网站的用户,页面所产生的http连接次数是影响性能的一个关键瓶颈。
对策:
- 尽量简洁的页面设计,最大程度减少图片的使用,通过放弃一些不必要的页面特效来减少javascript的使用。
- 使用一些优化技巧,比如利用图片的背景位移减少图片的个数;image map技术;使用Inline images将css图片捆绑到网页中。
- 尽量合并js和css文件,减少独立文件个数。
2) 使用gzip压缩网页内容
使用gzip来压缩网页中的静态内容,能够显著减少用户访问网页时的等待时间(据说可达到60%)。主流的web服务器都支持或提供gzip压缩,如果使用apache服务器,只需要在配置文件中开启 mod_gzip(apache1.x)或mod_deflate(apache2.x)即可。凡是静态的页面,使用gzip压缩都能够显著提高服务器效率并减少带宽支出,注意图片内容本身已经是压缩格式了,务必不要再进行压缩。
3)将CSS放在页面顶端,JS文件放在页面底端
CSS的引用要放在html的头部header中,JS文件引用尽量放在页面底端标签的后面,主要的思路是让核心的页面内容尽早显示出来。不过要注意,一些大量使用js的页面,可能有一些js文件放在底端会引起一些难以预料的问题,根据实际情况适当运用即可。
4)使JS文件内容最小化
具体来说就是使用一些javascript压缩工具对js脚本进行压缩,去除其中的空白字符、注释,最小化变量名等。在使用gzip压缩的基础上,对js内容的压缩能够将性能再提高5%。
5)尽量减少外部脚本的使用,减少DNS查询时间
不要在网页中引用太多的外部脚本,首先,一次dns的解析过程会消耗20-120毫秒的时间;其次,如果在页面中引用太多的外部文件(如各种广告、联盟等代码),可能会因为外部文件的响应速度而将你的网站拖得很慢。如果不得不用,那么就尽量将这些脚本放在页脚吧。不过有一点需要提及,就是浏览器一般只能并行处理同一域名下的两个请求,而对于不同子的域名则不受此限制,因此适当将本站静态内容(css,js)放在其他的子域名下(如 static.xxx.com)会有利于提高浏览器并行下载网页内容的能力。
对于您网站的经常性访问用户,主要的优化思路就是最大限度利用用户浏览器的cache来减少服务器的开销。
1)在header中添加过期时间(Expires Header)
在header中给静态内容添加一个较长的过期时间,这样可以使用户今后访问只读取缓存中的文件,而不会与服务器产生任何的交互。不过这样做也存在一些问题,当图片、CSS和js文件更新时,用户如果不刷新浏览器,就无法获得此更新。这样,我们在对图片、css和js文件修改时,必须要进行重命名,才能保证用户访问到最新的内容。这可能会给开发造成不小的麻烦,因为这些文件可能被站点中的许多文件所引用。flickr提出的解决办法是通过url rewrite使不同版本号的URL事实上指向同一个文件,这是一个聪明的办法,因为url级别的操作效率是很高的,可以给开发过程提供不少便利。
要理解为什么这样做,必须要了解浏览器访问url时的工作机制:
a. 第一次访问url时,用户从服务器段获取页面内容,并把相关的文件(images,css,js…)放在高速缓存中,也会把文件头中的expired time,last modified, ETags等相关信息也一同保留下来。
b. 用户重复访问url时,浏览器首先看高速缓存中是否有本站同名的文件,如果有,则检查文件的过期时间;如果尚未过期,则直接从缓存中读取文件,不再访问服务器。
c. 如果缓存中文件的过期时间不存在或已超出,则浏览器会访问服务器获取文件的头信息,检查last modifed和ETags等信息,如果发现本地缓存中的文件在上次访问后没被修改,则使用本地缓存中的文件;如果修改过,则从服务器上获取最新版本。
我的经验,如果可能,尽量遵循此原则给静态文件添加过期时间,这样可以大幅度减少用户对服务器资源的重复访问。
2)将css和js文件放在独立外部文件中引用
将css和js文件放在独立文件中,这样它们会被单独缓存起来,在访问其他页面时可以从浏览器的高速缓存中直接读取。一些网站的首页可能是例外的,这些首页的自身浏览可能并不大,但却是用户访问网站的第一印象以及导向到其他页面的起点,也可能这些页面本身使用了大量的ajax局部刷新及技术,这时可以将 css和js文件直接写在页面中。
3)去掉重复的脚本
在IE中,包含重复的js脚本会导致浏览器的缓存不被使用,仔细检查一下你的程序,去掉重复引用的脚本应该不是一件很难的事情。
4)避免重定向的发生
除了在header中人为的重定向之外,网页重定向常在不经意间发生,被重定向的内容将不会使用浏览器的缓存。比如用户在访问www.xxx.com,服务器会通过301转向到www.xxx.com/,在后面加了一个“/”。如果服务器的配置不好,这也会给服务器带来额外的负担。通过配置apache的 alias或使用mod_rewrite模块等方法,可以避免不必要的重定向。
还有一些,比如使用CDN分发机制、避免CSS表达式等、避免使用ETags等,因为不太常用,这里就不再赘述了。
做完了上述的优化,可以试着用yslow测试一下网页的性能评分,一般都可以达到70分以上了。
当然,除了浏览器前端和静态内容的优化之外,还有针对程序脚本、服务器、数据库、负载的优化,这些更深层次的优化方法对技术有更高的要求。本文的后半部分将重点探讨后端的优化。
二、后端优化
上次写完web2.0网站前端优化篇之后,一直想写写后端优化的方法,今天终于有时间将思路整理了出来。
前端优化可以避免我们造成无谓的服务器和带宽资源浪费,但随着网站访问量的增加,仅靠前端优化已经不能解决所有问题了,后端软件处理并行请求的能力、程序运 行的效率、硬件性能以及系统的可扩展性,将成为影响网站性能和稳定的关键瓶颈所在。优化系统和程序的性能可以从以下的方面来入手:
1)apache、mysql等软件的配置的优化
尽管apache和mysql等软件在安装后使用的默认设置足以使你的网站运行起来,但是通过调整mysql和apache的一些系统参数,还是可以追求更高的效率和稳定性。这个领域中有很多专业的文章和论坛(比如: http://www.mysqlperformanceblog.com/),要想掌握也需要进行深入的研究和实践,这里就不重点讨论了。
2)应用程序环境加速
这里仅以我最常应用的php开发环境为例,有一些工具软件可以通过优化PHP运行环境来达到提速的目的,其基本原理大致是将PHP代码预编译并缓存起来,而不需要改变任何代码,所以比较简单,可以将php的运行效率提升50%以上。比较常用的免费php加速工具有:APC( http: //pecl.php.net/package-info.php?package=APC)、Turck MMCache( http://turck-mmcache.sourceforge.net)、php accelebrator(www.php-accelerator.co.uk),还有收费的Zend Performance Suite
3)将静态内容和动态内容分开处理
apache是一个功能完善但比较庞大的web server,它的资源占用基本上和同时运行的进程数呈正比,对服务器内存的消耗比较大,处理并行任务的效率也一般。在一些情况下,我们可以用比较轻量级的web server来host静态的图片、样式表和javascript文件,这样可以大大提升静态文件的处理速度,还可以减少对内存占用。我使用的web server是来自俄罗斯的nginx,其他选择方案还包括lighttpd和thttpd等。
4)基于反向代理的前端访问负载均衡
当一台前端服务器不足以应付用户访问时,通过前端机实现web访问的负载均衡是最快速可行的方案。通过apache的mod_proxy可以实现基于反向代理的负载均衡,这里推荐使用nginx做代理服务器,处理速度较apache更快一些。
5)应用缓存技术提高数据库效能,文件缓存和分布式缓存
数据库访问处理并发访问的能力是很多网站应用的关键瓶颈,在想到使用主从结构和多farm的方式构建服务器集群之前,首先应该确保充分使用了数据库查询的缓存。一些数据库类型(如mysql的innoDB)自身内置对缓存的支持,此外,还可以利用程序方法将常用的查询通过文件或内存缓存起来。比如通过 php中的ob_start和文件读写函数可以很方便的实现文件形式的缓存,而如果你拥有多台服务器,可以通过memcache技术通过分布式共享内存来对数据库查询进行缓存,不仅效率高而且扩展性好,memcache技术在livejournal和Craigslist.org等知名网站应用中都得到了检验。
6)服务器运行状态的检测,找到影响性能的瓶颈所在
系统优化没有一劳永逸的方法,需要通过检测服务器的运行状态来及时发现影响性能的瓶颈,以及可能存在的潜在问题,因为网站的性能,永远取决于木桶中的短板。可以编写一些脚本来检测web服务的运行,也有一些开源的软件也提供了很好的功能
7)良好的扩展架构是稳定和性能的基础
一些技巧和窍门可以帮你度过眼前的难关,但要想使网站具备应付大规模访问的能力,则需要从系统架构上进行彻底的规划,好在很多前人无私的把他们架构
网站的经验分享给我们,使我们可以少走甚多弯路。我最近读到的两篇有启发的文章:
- 从LiveJournal后台发展看大规模网站性能优化方法
- Myspace的六次重构
最后不得不提到程序编码和数据库结构对性能的影响,一系列糟糕的循环语句,一个不合理的查询语句、一张设计不佳的数据表或索引表,都足以会使应用程序运行的速度成倍的降低。培养全局思考的能力,养成良好的编程习惯,并对数据库运行机制有所了解,是提高编程质量的基础。