移動端 h5 開發相關內容總結:JavaScript 篇

zhiqiang21發表於2016-01-24

1.改變頁面標題的內容

有時候我們開發 h5頁面的時候需要動態的去更新title 的名字,這個時候使用

就可以解決我們的問題。

或者使用

這種方法不僅能夠修改 title 而且能夠修改 url 的值,並且將這些資訊儲存到瀏覽器的歷史堆疊中,當使用者使用返回按鈕的時候能夠得到更加好的體驗。
當我們在做一個無重新整理更新頁面資料的時候,可以使用這種方法來記錄頁面的狀態,使得頁面能夠回退。

2.日誌記錄同步傳送請求

有這樣的一個場景:
在做電商類的產品的時候,我們要對每個產品的點選數進行統計(其實就是出發一個ajax請求)。PC端的互動大多數是點選商品後新開頁面。這個時候ajax同步傳送或者非同步傳送對統計沒有影響。
但是巢狀在客戶端中,長長是在當前 tab 中跳頁。如果我們仍舊使用非同步的ajax 請求,有請求會被阻斷,統計結果不準確。

3.JavaScript 中 this 相關

這部分內容之前也是看過很多次,但是都不能夠理解深層次的含義。後來看的多了,也就理解了。

以上程式碼瀏覽器中輸出結果如下:

這裡寫圖片描述

在瀏覽器中輸入一下的內容檢視輸出:

這裡寫圖片描述

我們對程式碼做一下修改,如下:

與之上相同的輸入,檢視一下輸出是什麼

這裡寫圖片描述

由上可知 new 操作符的執行過程:

  1. 一個新物件被建立。它繼承自BBB.prototype
  2. 建構函式 BBB 被執行。執行的時候,相應的傳參會被傳入,同時上下文this會被指定為這個新例項。new BBB 等同於new BBB(), 只能用在不傳遞任何引數的情況。
  3. 如果建構函式返回了一個“物件”,那麼這個物件會取代整個new出來的結果。如果建構函式沒有返回物件,那麼new出來的結果為步驟1建立的物件。

    一般情況下建構函式不返回任何值,不過使用者如果想覆蓋這個返回值,可以自己選擇返回一個普通物件來覆蓋。當然,返回陣列也會覆蓋,因為陣列也是物件。

4.JavaScript 中閉包相關

定義在閉包中的函式可以“記憶”它建立時候的環境。

5.銷燬事件繫結

我自己在寫 js 的事件繫結的時候也經歷了一個過程,剛開始的時候onclickbindlivedelegate,on 這樣一個過程。

之所以會有這樣的需求就是因為我們頁面上的 DOM 是動態更新。比如說,某塊內容是點選頁面上的內容顯示出來,然後在這塊新出現的內容上使用click肯定是滿足不了需求的。

livedelegate 屬於較早版本的事件委託(代理事件)的寫法。最新版本的 jquery 都是使用on 來做代理事件。效率上比 livedelegate更高。

live是將事件繫結到當前的document ,如果文件元素巢狀太深,在冒泡的過程中影響效能。
delegateon 的區別就是

由此可知,使用on的話,子代元素的選擇器是可選的。但是 delegate的選擇器是必須的。ondelegate更加的靈活。

很多時候我們都是隻宣告事件繫結,而不管事件的銷燬。但是在編寫前端外掛的時候,我們需要提供事件銷燬的方法,提供給外掛使用者呼叫。這樣做的好處就是使,使用者對外掛更加可控,釋放記憶體,提供頁面的效能。


如果您覺得不錯,請訪問 github(點我) 地址給我一顆星。謝謝啦!

打賞支援我寫出更多好文章,謝謝!

打賞作者

打賞支援我寫出更多好文章,謝謝!

任選一種支付方式

移動端 h5 開發相關內容總結:JavaScript 篇 移動端 h5 開發相關內容總結:JavaScript 篇

相關文章