第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
  • 常見的異步操作:

    1、定時器setTimeout
    2、postmessage
    3、WebWorker
    4、CSS3 動畫
    5、XMLHttpRequest
    6、HTML5的本地數(shù)據(jù)讀寫


    JS是單線程語言:

    1、就簡單性而言,把每一件事情(包括GUI事件和渲染)都放在一個線程里來處理是一個很好的程序模型,因為這樣就無需再考慮線程同步這些復雜問題

    2、另一方面,他也暴露了應用開發(fā)中的一個嚴重問題,單線程環(huán)境看起來對用戶請求響應迅速,但是當線程忙于處理其它事情時,就不能對用戶的鼠標點擊和鍵盤操作做出響應


    Deferreds:Deferreds 的引入對這個問題提供了一個更好的解決方案,它是非阻塞的,并且與代碼完全解耦

    查看全部
    0 采集 收起 來源:理解異步

    2022-08-10

  • 靜態(tài)接口設計:

    靜態(tài)方法是直接操作數(shù)據(jù)類的 data_user.access 方法。將數(shù)據(jù)存放在全局緩存(我們稱之為“globalCache”)中,即 “globalCache” 包含了多個 DOM Element 的 “cache”,并在 DOM Element 上添加一個屬性,存放 “cache” 對應的 uid


    $.data() 與?$.fn.data() 的區(qū)別:一個對應jQuery對象,一個對應DOM元素

    1:jQuery.data(element,[key],[value]),每一個element都會有自己的一個{key:value}對象保存著數(shù)據(jù),所以新建的對象就算有key相同它也不會覆蓋原來存在的對象key所對應的value,因為新對象保存是是在另一個{key:value}對象中

    2:$("div").data("a","aaaa") 它是把數(shù)據(jù)綁定每一個匹配div節(jié)點的元素上


    說到底,數(shù)據(jù)緩存就是在目標對象與緩存體間建立一對一的關系,整個Data類其實都是圍繞著 thia.cache 內部的數(shù)據(jù)做增刪改查的操作

    查看全部
  • jQuery.access:

    jQuery的方法設計大都是多用的,可以根據(jù)傳遞參數(shù)的個數(shù)判斷是set還是get處理,不僅如此jQuery還對參數(shù)的傳遞類型還抽出了一個處理的方法jQuery.access,我們可以傳遞字符串、數(shù)組、對象等等,根據(jù)這種類型自動分解成接口所有能接受的參數(shù)

    查看全部
  • Data類的設計:

    1、先在jQuery內部創(chuàng)建一個cache對象{}, 來保存緩存數(shù)據(jù)。 然后往需要進行緩存的DOM節(jié)點上擴展一個值為expando的屬性

    2、接著把每個節(jié)點的dom[expando]的值都設為一個自增的變量id,保持全局唯一性。 這個id的值就作為cache的key用來關聯(lián)DOM節(jié)點和數(shù)據(jù)。也就是說cache[id]就取到了這個節(jié)點上的所有緩存

    3、每個uid對應一個elem緩存數(shù)據(jù),每個緩存對象是可以由多個name value(名值對)對組成的,而value是可以是任何數(shù)據(jù)類型的


    注:expando的值,用于把當前數(shù)據(jù)緩存的UUID值做一個節(jié)點的屬性給寫入到指定的元素上形成關聯(lián)橋梁,所以,所以元素本身具有這種屬性的可能性很少,所以可以忽略沖突。

    查看全部
    0 采集 收起 來源:Data類的設計

    2022-08-10

  • jQuery緩存的設計思路:

    數(shù)據(jù)存放在內存中,通過一個映射關系與直接的DOM元素發(fā)生關聯(lián)


    數(shù)據(jù)緩存,jQuery現(xiàn)在支持兩種:

    1. dom元素,數(shù)據(jù)存儲在jQuery.cache中。
    2. 普通js對象,數(shù)據(jù)存儲在該對象中。


    數(shù)據(jù)緩存的特點:

    1、如果是DOM元素,通過分配一個唯一的關聯(lián)id把DOM元素和該DOM元素的數(shù)據(jù)緩存對象關聯(lián)起來,關聯(lián)id被附加到以jQuery.expando的值命名的屬性上,數(shù)據(jù)存儲在全局緩存對象jQuery.cache中。在讀取、設置、移除數(shù)據(jù)時,將通過關聯(lián)id從全局緩存對象jQuery.cache中找到關聯(lián)的數(shù)據(jù)緩存對象,然后在數(shù)據(jù)緩存對象上執(zhí)行讀取、設置、移除操作。

    2、如果是Javascript對象,數(shù)據(jù)則直接存儲在該Javascript對象的屬性jQuery.expando上。在讀取、設置、移除數(shù)據(jù)時,實際上是對Javascript對象的數(shù)據(jù)緩存對象執(zhí)行讀取、設置、移除操作。

    3、為了避免jQuery內部使用的數(shù)據(jù)和用戶自定義的數(shù)據(jù)發(fā)生沖突,數(shù)據(jù)緩存模塊把內部數(shù)據(jù)存儲在數(shù)據(jù)緩存對象上,把自定義數(shù)據(jù)存儲在數(shù)據(jù)緩存對象的屬性data上。

    查看全部
  • 緩存處理的靜態(tài)與實例方法的區(qū)別:

    1.jQuery.data()可以實現(xiàn)為dom元素或js對象添加緩存
    2.$("ele").data()實是對前者的擴展,其目的是可以方便的通過選擇器為多個dom元素添加緩存數(shù)據(jù)

    查看全部
  • 把很多屬性,比如狀態(tài)標志都寫到dom節(jié)點中,也就是HTMLElement。

    好處:直觀,便捷

    壞處:

    1、循環(huán)引用
    2、直接暴露數(shù)據(jù),安全性?
    3、增加一堆的自定義屬性標簽,對瀏覽器來說是沒意的
    4、取數(shù)據(jù)的時候要對HTML節(jié)點做操作


    jQuery緩存系統(tǒng)的的好處:

    A.允許我們在DOM元素上附加任意類型的數(shù)據(jù),避免了循環(huán)引用的內存泄漏風險
    B.用于存儲跟dom節(jié)點相關的數(shù)據(jù),包括事件,動畫等
    C.一種低耦合的方式讓DOM和緩存數(shù)據(jù)能夠聯(lián)系起來


    jQuery緩存系統(tǒng)的真正魅力在于其內部應用中,動畫、事件等都有用到這個緩存系統(tǒng)。試想如果動畫的隊列都存儲到各DOM元素的自定義屬性中,這樣雖然可以方便的訪問隊列數(shù)據(jù),但也同時帶來了隱患。如果給DOM元素添加自定義的屬性和過多的數(shù)據(jù)可能會引起內存泄漏,所以要盡量避免這么干。


    對于jQuery來說,數(shù)據(jù)緩存系統(tǒng)本來就是為事件系統(tǒng)服務而分化出來的,到后來,它的事件克隆乃至后來的動畫列隊實現(xiàn)數(shù)據(jù)的存儲都是離不開緩存系統(tǒng),所以數(shù)據(jù)緩存也算是jQuery的一個核心基礎了


    $.data(element, key, value )
    $(elem).data(key, value)

    查看全部
  • 內存泄露是指一塊被分配的內存既不能使用,又不能回收,直到瀏覽器進程結束。


    常見內存泄露的幾種情況:

    1、循環(huán)引用

    2、Javascript閉包

    3、DOM插入


    其實絕大部分內存泄漏都不是由Javascript引起的,瀏覽器的回收機制已經做的相當好了,多數(shù)的泄漏都是由于與DOM交互而產生的。


    循環(huán)引用很常見且大部分情況下是無害的,但當參與循環(huán)引用的對象中有DOM對象或者ActiveX對象時,循環(huán)引用將導致內存泄露。


    由于DOM元素(節(jié)點)也是對象, 所以我們可以直接擴展DOM元素的屬性,但是如果給DOM元素添加自定義的屬性和過多的數(shù)據(jù)可能會引起內存泄漏,所以應該要盡量避免這樣做。?

    查看全部
    0 采集 收起 來源:內存泄露

    2022-08-10

  • stopOnFalse: 當一個回調返回false 時中斷調用


    jQuery.Callbacks("once memory")的組合了,無非就是組合起來的時候要考慮一些判斷了

    查看全部
    0 采集 收起 來源:stopOnFalse

    2022-08-09

  • Unique:確保一次只能添加一個回調(所以在列表中沒有重復的回調)


    過濾重復的比較簡單,因為是數(shù)組的保存方式,我們可以在入口處通過indexOf判斷即可

    查看全部
    0 采集 收起 來源:unique的設計

    2022-08-09

  • memory:保持以前的值,將添加到這個列表的后面的最新的值立即執(zhí)行調用任何回調 (像一個遞延 Deferred)。


    結果可以看出,我們在執(zhí)行cbs.add(fn2);的時候,此時除了把fn2添加到了回調隊列之外而且還立刻執(zhí)行了這個方法,唯一的區(qū)別就是,參數(shù)是用的之前的。所以解釋就叫“保持以前的值”。


    私有變量memory緩存這上一個參數(shù)的屬性,我們靠firingStart用來定位最后通過add增加的回調數(shù)據(jù)的索引。在遍歷的時候直接通過firingStart的起始索引定位,然后傳遞memory的參數(shù),而且實現(xiàn)這種“保持以前的值”的設計

    查看全部
    0 采集 收起 來源:memory的設計

    2022-08-09

  • once定義是很明確的,確保這個回調列表只執(zhí)行( .fire() )一次(像一個遞延 Deferred)

    查看全部
    0 采集 收起 來源:once的設計

    2022-08-09

  • 通過學習了觀察者模式的思路,我們知道callback需要在內部維護著一個list的隊列數(shù)組,用于保存訂閱的對象數(shù)據(jù)。同時也需要提供了add、remove、fire等訂閱、發(fā)布、刪除類似的接口

    查看全部
  • jQuery回調對象


    jQuery.Callbacks一般開發(fā)者接觸的很少,雖然jQuery向開發(fā)者提供了外部接口調用,但是$.Callbacks()模塊的開發(fā)目的是為了給內部$.ajax() 和 $.Deferred()模塊提供統(tǒng)一的基本功能組件。它可以用來作為類似基礎定義的新組件的功能。


    jQuery.Callbacks還提供“once memory”等參數(shù)用來處理:

    1、once: 確保這個回調列表只執(zhí)行( .fire() )一次(像一個遞延 Deferred)。

    2、memory: 保持以前的值,將添加到這個列表的后面的最新的值立即執(zhí)行調用任何回調 (像一個遞延 Deferred)。

    3、unique: 確保一次只能添加一個回調(所以在列表中沒有重復的回調)。

    4、stopOnFalse: 當一個回調返回false 時中斷調用。

    查看全部
    0 采集 收起 來源:jQuery回調對象

    2022-08-09

  • 觀察者模式的實際應用:


    設計該模式背后的主要動力是促進形成松散耦合。


    觀察者模式所做的工作就是在解耦,讓耦合的雙方都依賴于抽象,而不是依賴于具體。從而使得各自的變化都不會影響到另一邊的變化。

    查看全部

舉報

0/150
提交
取消
課程須知
源碼的閱讀不是一蹴而就的,需要大家有一定的功底,比如jQuery的基礎運用以及API的熟悉度,除此之外要有牢固的javascript、DOM、CSS的基礎功底,甚至還需要理解常見的設計模式、數(shù)據(jù)結構等等。當然大家也不要被這些給嚇住了,理解,總是需要一種慢慢的學習過程。
老師告訴你能學到什么?
通過本課程的學習,您可以由淺入深地剖析jQuery庫的設計與實現(xiàn)。 其中我們圍繞的重心: 1、設計理念 2、結構組織 3、接口設計 4、模式運用 5、場景套用

微信掃碼,參與3人拼團

微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!