网站大量收购闲置独家精品文档,联系QQ:2885784924

High Design Meets High Performance - O′Reilly Media 高设计满足高性能——O′Reilly媒体.ppt

High Design Meets High Performance - O′Reilly Media 高设计满足高性能——O′Reilly媒体.ppt

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
High Design Meets High Performance - O′Reilly Media 高设计满足高性能——O′Reilly媒体

* * * * * * * * * * * * * * * * * * Limit the number of event handlers (1/2) Attaching an event handler to hundreds of elements is very costly Multiplying event handlers augments the potential for memory leaks Solution: Use event delegation, a technique that relies on event bubbling div id=container ul li id=li-1List Item 1/li li id=li-2List Item 2/li li id=li-3List Item 3/li li id=li-4List Item 4/li li id=li-5List Item 5/li ... /ul /div div#container ul li#li-x text node Limit the number of event handlers (2/2) YAHOO.util.Event.addListener(container, click, function (e) { var el = YAHOO.util.Event.getTarget(e); while (el.id !== container) { if (el.nodeName.toUpperCase() === LI) { // Do something here... break; } else { el = el.parentNode; } } }); Limiting reflows Reflows happen whenever the DOM tree is manipulated. Browsers have optimizations you may take advantage of to minimize reflow: Modifying an invisible element (display:none) does not trigger reflow Modifying an element “off-DOM” does not trigger reflow Batch style changes: Change the value of the style attribute using setAttribute (does not work on Internet Explorer) Example: Change the value of the cssText property of the style object. Example: More maintainable: Change the CSS class name of an element. Example: el.style.cssText = display:block;width:auto;height:100px;...; YAHOO.util.Dom.replaceClass(el, foo, bar); el.setAttribute(style, display:block;width:auto;height:100px;...); Miscellaneous tips... Consider using the onmousedown event instead of the onclick event Get a head start by making use of the small delay between the time a user presses the mouse button and the time he/she releases it. “Downshift your code”: throttle frequent and expensive actions See /blog/2007/07/09/downshift-your-code/ Part 5 High Performance Layout and CSS Miscellaneous tips... Use CSS Sprites for Snappy Image Replace

文档评论(0)

skvdnd51 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档