减少DNS查找
从用户角度削减DNS查找。所有机能至关主要的Web页面。削减下载页面所需的DNS查找,不外要衡量斟酌阅读器对同时衔接的限制。DNS查找须要消费年夜量的时光,年夜量的DNS查找会影响用户体验。削减对象、义务、盘算等都可以加快页面载入,但同时也要斟酌工作分化。
至此可见,削减就是进步机能和扩大性的代名词。固然很多原则针对的是软件即办事(SaS)的架构,但这个原则斟酌的则是客户的阅读器。假如采取阅读器端的调试对象,如MozillaFirefoxI的插件Firebug9,那么在载入运用中的一个页面时,你就会发明有趣的成果。最惹人留意的成果之是页面中年夜小邻近的对象下载的时长却纷歧样。进一步不雅察,你会发明在开端下载对象之前,都有一个额外的步调:DNS查找。
域名办事器(DNS)是因特网或其他采取TCP/IP协定的收集最主要的基本举措措施之一。它可以把域名(如www.akfpartners.com)翻译成IP地址(如184.72.236.173),是以经常被比作德律风簿。DNS是经由过程一个散布式数据库体系保护的,该数据库体系的节点是域名办事器。这种分层系统的最顶层是根域名办事器。每个域至少有一个威望的DNS办事器,用于宣布关于该域的信息。
采取多层级缓存的办法可以加快把域名翻译为IP地址,缓存可在阅读器、操作体系、因特网办事供给商等各级进行。不外,在实际世界中页面上都有成百上千的对象,很多对象来自于分歧的域,下载每个对象的时光固然眇乎小哉,然则累加起来形成的时光差就会引起客户留意了我们深刻评论辩论若何削减DNS查询之前,起首应当对年夜多半阅读器若何下载页面有更多的懂得。
这并不是说要深刻研讨阅读器,然则懂得基本道理有助于你优化运用的机能和扩大性。几乎所有的Web页面都是由很多分歧的对象(图像、Javascript剧本、CSS剧本等)组成的,阅读器应用了这一点,可以同时衔接下载多个对象。阅读器限制了对每个办事器或署理的最年夜同时连续衔接数。依据HTTP/1.1RFC划定,这个最年夜衔接数应当设置为2。然则很多阅读器都邑疏忽这个RFC,把最年夜衔接数设置为6或者更年夜。鄙人一个原则中,我们将介绍若何应用这个功效优化页面的下载时光。如今,让我们把重点放在可以分成多个对象,并经由过程多个衔接下载它们的Web页面。
Web页面上的一个或多个对象可能属于分歧的域,每个域都须要在缓存或DNS域名办事器中进行DNS查找。
例如,假设一个简略的Web页面具有以下4个对象:
1)包括文本和其他对象相干指令的HTML页面自己;
2)设置结构的CSS文件;
3)设置菜单项的Javascript文件;
4)JPG图像。
HTML文件来自于我们的域(akfpartners.com),但CSS文件和JPG文件来自于子域(static.akfpartners.com)Javascrip文件则是链接到Google(ajax.googleapis.com)的。在这个例子中,测览器起首政御访www.akfnartners.com页面的要求,这就须要对域akfnartners.com进行DNS查找。当把HTML文件下载到阅读器中后,阅读器解析发明须要从static.akfpartners.com下载CSS和JPG文件,这就须要另一次DNS查找。最最后,经由过程解析发明还须要从别的一个域下载一个外部的Javascript文件。依附阅读器、操作体系等对DNS缓存的刷新,这些查找消费的时光最多只有几百毫秒。
一个通用的网站扶植原则是,页面上的DNS查找越少下载页面的机能越高。然则,把所有对象都放在一个域中也有晦气的一面,我们在前面关于最年夜同时衔接数的评论辩论中就暗示过这一点。