Ajax 板


LINE

http://blog.jquery.com/2012/06/22/jquery-1-8-beta-1-see-whats-coming-and-going/ 短网址:http://goo.gl/TDDJW 这是我整理 Release Note 上读来的几个重点: 1.MODULARITY 模组化 因为采用新的 grunt 建制模式,现在你可以只针对 jQuery 其中几个需要得模组进行打包,不见得需要引入整个 jQuery 功能集。 需要的话只要从 github 取出 jQuery project 并透过 grunt command 进行。 TonyQ注:(不建议真的去作客制版本,容易造成维护上困难。) 2.VENDOR-PREFIXED CSS PROPERTIES 对 css 属性有更好的支援,对於某些目前 css3 有些只能透过浏览器 专属 prefix 进行设定的 css properties,现在 jQuery 都支援。 简单来说就是对那些 -webkit- -moz- 开头的属性帮上一点忙。:) 举例,在 chrome 上,如果你用了这个指令: $("#myscroll").css("marquee-direction", "backwards") 实际上将会设定底下这个 css 属性到 dom 上 -webkit-marquee-direction: backwards. TonyQ 注:补一点从 jQuery code 看来的实作细节, 可以找 function vendorPropName( style, name ) { 他的作法是如果 cssHook 中找不到,他会去判断加上 prefix 後, 在 dom.style 中找不找得到,找得到他就会处理。 所以不是透过查表来处理,这招蛮聪明的。 3.ANIMATION (EFFECTS) 过去 animation 的扩充与实做上,需要修改 $.fn.step/$.fn.csshook , 导致这些动态效果散落在各处实做上,缺乏全面性的架构,所以面临难以 维护的窘境。 目前在 1.8 已经获得改善,1.8 以後将有一个更全面的 一系列 factory method 协助你建制 animation, 详细文件请参考: https://gist.github.com/54829d408993526fe475 这部份主要是帮助你「设计」 animation 扩充, 如果你只是要 "用" animation 的话,这个部份对你没什麽影响。 TonyQ 注:这一步蛮漂亮的,希望能藉此出现更多好用的 animation plugin。 4.SIZZLE CSS SELECTOR ENGINE sizzle 又重新更新了,对一些边缘案例有更多的支援, 然後在效能上对一些最常用的 selector "选取时"进行更好的支援。 详细请参考原文跟这个官方提供的 jsperf 测试案例 http://jsperf.com/jquery-id-init/4 5.XSS PROTECTION (重要,有引入新的写作原则) 因为预设的情况下,如果你把一个 html 字串放进 $() 里, 这个 html 会被转换为 HTML Dom Element , 其中如果有<script> 标签也会被执行。 像是 $("<div></div>") 有时候如果开发者不小心用了来自使用者来的字串, 像是 var word = window.prompt("please enter selector"); $(word).hide(); 这样可能就会有使用者故意输入 <script src="xss-attach.js"></script> 来进行 XSS 攻击。 jQuery 计画在 1.9 (再下一个版本)进行规格上的改动, 但在 1.8 则是引入新的 method $.parseHTML 来先帮大家处理这个问题。 如果你是习惯用 $("<p></p>") 这类用法的使用者, 在 1.8 以後请改用 $.parseHTML("<p></p>") 来作这件事情。 因为 $(html) 官方预告在 1.9 时行为将会改变, 在 1.9 时将严格的认定只有 html 是 "<" 开头的会被当作 html 处理, 否则都视为 selector 处理。 6.SPRING CLEANING (重点) 注:被标重点的都是那些对向下相容或者开发习惯上有重大改动的东西。1.9 开始(再之後一个版本),许多不建议使用、不常被使用 或效率低落的功能将被标记 过时或移除,但也还会提供另一只 jQuery.compat plug in 来支援那些被移除、过时的函式。 https://github.com/jquery/jquery-compat-1.9/ 其中有几个比较主要的东西...条列如下: @ $.browser << 官方从 1.4 开始认为透过 user-agent 去判断版本不好, 应该透过侦测需要的功能是否有支援来开发。($.support) 这相信很多专案中都有用到,升上 1.9 时要记得加挂 compat。 TonyQ 不得不注:WTF ......有这麽简单就好了,很多怪问题不能透过 $.support 判断,强烈建议 jQuery 加入 $.supprot.weird 选项。 @ $.sub << 官方认为这东西没有想像中的有用,所以也移掉到 compat 去了。 @ 全域 的 ajaxStart 等 ajax event 有修改, 也就是你用到 $.ajaxSetup 去作设定 ajaxStart 时,行为将和 1.8不同。 http://api.jquery.com/jQuery.ajaxSetup/ 理由是原本规格开太强,连那些已经被移除的元素, 都会需要为这些事件作特殊处理,所以出现了效率低落的特殊案例。 官方从 1.9 开始将只处理那些在 document 底下的元素, 当他们进行 ajax 行为时才会触发这些事件。 详细参考 http://api.jquery.com/ajaxStart/ TonyQ 注 :我是觉得这个应该影响不大。 7.其他修正,这是我从 issue list 上挖一些比较重要的: A. $().size() 被标为 deprecated ,请改用 $().length 替代。 详情参阅讨论串:http://bugs.jquery.com/ticket/10657 B. $.ajax() 中, async option 将被标为 deprecated , 这意味着,官方不希望你透过 $.ajax 去进行"同步"的 request。 TonyQ注:理由我想跟是不是 ajax 就该非同步不是那麽直接有关系, 主要理由是当你设定 async:false 时, defered 将无法支援, 所以使用者使用 defered 要一直去判断/了解 ajax 是同步或非同步。 在支援上也会有很大的问题,在讨论串中最後一个评论解释得很清楚, 他们并不认为 sync ajax 是一个不该被使用的使用情境。(我也是) 因为这有必要讲清楚,所以我特别节录一段过来: It does not say there are no valid use cases for sync ajax. It does not say you are all bad people for doing sync ajax. It does not say there will be no way to do sync ajax --only that it won't be via $.ajax. 详情参阅讨论串:http://bugs.jquery.com/ticket/11013 一些新夥伴可能不了解 async 选项的用意, 请自行参考文件或 google 网路文章,这里不多作解释。 参考 http://api.jquery.com/jQuery.ajax/ 中 async 章节 http://jax-work-archive.blogspot.tw/2009/05/ajaxxmlhttprequest.html http://www.classyuan.com/?p=247 ) C. $().data("events") 被 deprecated 了, 官方建议改用 $()._data("events") 。 events 是用来纪录被挂上去的 jQuery 事件,属於内部实作, jQuery 基本上不希望使用者去碰他或使用他, 透过 $()_data 表示这是存取 jQuery 内部实作,使用者应该为他负责。 这议题想当然尔的也有一堆历史争论, 相关争论可以看这个很呛辣的 commit log http://goo.gl/RVrQ7 。 这里也说明得很清楚,包含整个讨论串都值得一看。 http://bugs.jquery.com/ticket/10589#comment:6 D.New method: .addBack (用来代替 .andSelf ,功能完全一模一样) http://bugs.jquery.com/ticket/9800 因为原始码有这行 jQuery.fn.andSelf = jQuery.fn.addBack; E.修正bug ".has doesn't work on detached elements" http://bugs.jquery.com/ticket/11543 其他小的就自己看吧,这已经是我筛选过得了 * DEPRECATE .DATA() EVENTS http://bugs.jquery.com/ticket/11718 * Deprecate .bind("ready") event http://bugs.jquery.com/ticket/11719 简而言之,他不希望 user 把自己 trigger 的 ready event, 和浏览器发动的 ready event 混在一起。 * Deprecate "hover" pseudo-event 理由是 It is not possible to attach an event with the name "hover" and fire it using .trigger("hover"). http://bugs.jquery.com/ticket/11731 * Deprecate .load(), .unload(), and .error() methods http://bugs.jquery.com/ticket/11733 * Deprecate .toggle( handler, handler, … ) signature http://bugs.jquery.com/ticket/11786 -- 说真的,看完这版 release note ,我心里的感想很复杂; 我觉得 jQuery team 应该更注重在使用者需要什麽, 而不是急着去调整他们的 API 或理念, 可想见的是 1.9 会是个比较冒险的版本,希望到时不会再重演 1.6 的灾情。 btw 这不是 1.8 release note 吗, 怎麽花好多篇幅在讲 1.9 他们想干麽。XD -- Life's a struggle but beautiful. --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.163.27.247 ※ 编辑: TonyQ 来自: 118.163.27.247 (06/27 11:52) ※ 编辑: TonyQ 来自: 118.163.27.247 (06/27 12:00) ※ 编辑: TonyQ 来自: 118.163.27.247 (06/27 12:00) TonyQ:转录至看板 Web_Design 06/27 12:03 ※ 编辑: TonyQ 来自: 118.163.27.247 (06/27 12:06)
1F:推 Fantasywind:推详细解说 06/27 13:36
2F:→ TonyQ:这里也有一篇介绍,可以对照着看补遗。http://goo.gl/O5dYf 06/27 13:59
3F:推 LaPass:推 06/27 14:04
4F:推 mrbigmouth:噗 .size()居然被deprecated..... 06/27 14:06
5F:推 mrbigmouth:1.8根本是根预防针.... 06/27 14:10
6F:推 nenpow:支援css prefix 还满不错的.. 不知道async那边最後会怎麽搞 06/27 14:11
7F:推 amos6064:push 06/27 14:42
8F:推 epenpal:push 06/28 00:16
9F:推 mrbigmouth:对耶 如果将来想玩sync的ajax(sjsx?)只能用原生写吗? 06/28 18:49
10F:→ TonyQ:我想不至於吧,以jquery 的惯例应该是会有另一个函式 06/29 00:39







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP