當新手使用JS庫遇到問題怎麼辦

見標題,知其意。在作網站時候,其實咱們會用不少JS庫,網絡上流行的和公司本身封裝的,這些東西都很好用,可是或多或少的有些bug或者有一些缺陷,即便真的很完善,但也可能達不到本身特定的一些需求。因此遇到問題,是很正常的。可是爲何要說是新手遇到問題呢?這就是由於,有些問題,工做幾年的攻城獅,垂手可得的就解決了,因此對於他們這些根本不是問題,或者對於他們這些就是私人定製而已。html

其實我也是這樣走過來的,若是叫我本身徹底封裝一個很是強悍的JS庫,我確定是沒有辦法作的,不是由於技術,而是經驗不夠,由於考慮的須要很是多的因素。就如ORM同樣,咱們會用很是成熟的,而不會本身去封裝。網絡

不說這麼多了,下面開始講講如何解決咱們在生產環境當中遇到問題怎麼辦?當時我這裏也要爲你們講一下前提條件,即准入知識,只有這樣你們纔有能力去解決問題的。post

1、准入知識
a) JQuery&JS

這個兩個基本的必須得懂,具體的能夠去http://www.w3school.com.cn學習學習

b) JS面向對象

參見:http://www.cnblogs.com/gaojun/archive/2013/10/24/3386552.html該博主也是參見《JavaScript 高級程序設計》這本說的,因此該博文對面向對象講的很到位,有些我沒有注意到過。網站

c) JQuery&JS擴展方法的實現

其實你們應該都遇到過,經過前臺腳本,去除字符串先後,JQuery和JS,都沒有公共的方法,我也不知道是爲何,還說所的就是替換字符串的,盡然默認只替換第一個匹配的。這裏也有現成的博文,供你們閱讀url

JQuery: http://www.cnblogs.com/xcj26/p/3345556.html設計

JS: http://www.cnblogs.com/kissdodog/p/3386480.html3d

這兩篇文章都很不錯,特別是JQuery這篇讓我也明白了一些之前不知道的。

這裏小小的總結下,請各位讀者按照a,b,c的順序進行知識準備,其實這個就是一個技術的昇華,其實這些都沒有多難,只是咱們之前沒有了解過。因此如今咱們有必要把知識掌握了方便之後工做當中使用orm

2、讀懂別人的JS庫中的代碼

這個很重要,你連別人的代碼都讀不懂,談什麼修改別人的代碼或者擴展別人的代碼。當時我相信,只要你們達到了准入知識,讀一些不是很是複雜的代碼,我相信沒有多大的我問題。因此掌握基礎是關鍵,來不得半點虛假。htm

咱們讀別人的代碼要膽大心細,你們都是寫程序的,JS庫也是人寫出來的,其餘比咱們強,仍是要按JS語法來實現,只是比咱們寫做水平高而已。就如咱們高考做文拿不到滿分,可是不至於連滿分做文都看不懂了吧。要是這樣的話我就爲你捉急了啊。

3、嘗試修改JS庫中的代碼

終於到了這個環節了,可是我要強調一下,不要輕易去修改網絡上流行的代碼。這裏原本就是將如何修改代碼,可是爲何又不要輕易去修改呢?你們不要疑惑,不讓修改是考慮到,這些JS庫,有很是專業的團隊在維護,代碼嚴謹性很是高,若是你改了,極可能影響整個JS庫的使用。即便真是一個Bug或者須要我的定製功能,建議從新實現和擴展。這樣有利於JS庫的升級和本身實現的代碼能夠獨立未獲。若是你真的修改了JS庫的代碼,請記住,必定要記錄到文檔,否者升級了JS庫,你所修改的代碼就會被覆蓋,你作工做就白費了。一般慣例,也是容許修改庫代碼的,因此你們要謹記。

這裏我就以我在工做當中遇到的一個例子,來給你們講解。

看到右側有一個本地保存的提示信息了吧,不少人都想把這個信息給去除,官方也提供的關閉參數,可是沒法達到咱們預期不提示的效果,可是把自動保存間隔時間設計很長時間,彷佛就能達到預期效果,可是這個方法確實是不太合理的。

首先咱們是要找到這段提示的出處

經過上圖咱們看到,其實這個就是一個配置文件,如何使用,咱們能夠靠猜,首先咱們看到這個值對應的鍵名是success,一看這個,就知道很難找的,可是咱們又看到autosave這個節點名稱,咱們想都不想,這個節點確定會出如今代碼裏。咱們就拿這個去搜索,看下兩張圖。

這是我找到最多是致使提示信息出現的兩段代碼。咱們能夠細細讀一下這些兩段代碼,看看各是什麼用途

這裏提供一個博文:http://www.kissthink.com/archive/--4232.html

這裏可讓咱們知道,第二張圖,其實就是爲了讓自動保存容許起來,因此咱們放到第一張圖。

咱們發現了這關鍵字,有沒有印象,這個關鍵字是在哪裏見過,對這個就是配置文件裏的,咱們開始的時候就說,設置間隔時間起效過,設置啓用自動保存這個參數卻不見做用,這樣咱們所搜下關鍵字enableAutoSave,整個庫裏面都找不到。這個說明這個功能根本沒有實現。

咱們把這個產生在代碼裏使用上級能夠了。結果以下圖:

總結,這裏只是爲了實現效果,其餘地方的代碼我沒有去深究,可是我想這樣修改應該不會影響其餘地方。我認爲修改別人的代碼不能,難的是修改後不會致使新的問題參數。再次強調,不要輕易跟我同樣再代碼裏作修改。若是能找到代碼外的實現方式是最好的。

相關文章
相關標籤/搜索