當(dāng)新手使用JS庫遇到問題怎么辦
見標題,知其意。在做網(wǎng)站時候,其實我們會用很多JS庫,網(wǎng)絡(luò)上流行的和公司自己封裝的,這些東西都很好用,但是或多或少的有些bug或者有一些缺陷,即使真的很完善,但也可能達不到自己特定的一些需求。所以遇到問題,是很正常的。但是為什么要說是新手遇到問題呢?這就是因為,有些問題,工作幾年的攻城獅,輕而易舉的就解決了,所以對于他們這些根本不是問題,或者對于他們這些就是私人定制而已。
其實我也是這樣走過來的,如果叫我自己完全封裝一個非常強悍的JS庫,我肯定是沒有辦法做的,不是因為技術(shù),而是經(jīng)驗不夠,因為考慮的需要非常多的因素。就如ORM一樣,我們會用非常成熟的,而不會自己去封裝。
不說這么多了,下面開始講講如何解決我們在生產(chǎn)環(huán)境當(dāng)中遇到問題怎么辦?當(dāng)時我這里也要為大家講一下前提條件,即準入知識,只有這樣大家才有能力去解決問題的。
一、準入知識
a) JQuery&JS
這個兩個基本的必須得懂,具體的可以去http://www.w3school.com.cn學(xué)習(xí)
b) JS面向?qū)ο?/p>
參見:http://www.cnblogs.com/gaojun/archive/2013/10/24/3386552.html該博主也是參見《JavaScript 高級程序設(shè)計》這本說的,所以該博文對面向?qū)ο笾v的很到位,有些我沒有注意到過。
c) JQuery&JS擴展方法的實現(xiàn)
其實大家應(yīng)該都遇到過,通過前臺腳本,去除字符串前后,JQuery和JS,都沒有公共的方法,我也不知道是為什么,還說所的就是替換字符串的,盡然默認只替換***個匹配的。這里也有現(xiàn)成的博文,供大家閱讀
JQuery: http://www.cnblogs.com/xcj26/p/3345556.html
JS: http://www.cnblogs.com/kissdodog/p/3386480.html
這兩篇文章都很不錯,特別是JQuery這篇讓我也明白了一些以前不知道的。
這里小小的總結(jié)下,請各位讀者按照a,b,c的順序進行知識準備,其實這個就是一個技術(shù)的升華,其實這些都沒有多難,只是我們以前沒有了解過。所以現(xiàn)在我們有必要把知識掌握了方便以后工作當(dāng)中使用
二、讀懂別人的JS庫中的代碼
這個很重要,你連別人的代碼都讀不懂,談什么修改別人的代碼或者擴展別人的代碼。當(dāng)時我相信,只要大家達到了準入知識,讀一些不是非常復(fù)雜的代碼,我相信沒有多大的我問題。所以掌握基礎(chǔ)是關(guān)鍵,來不得半點虛假。
我們讀別人的代碼要膽大心細,大家都是寫程序的,JS庫也是人寫出來的,其他比我們強,還是要按JS語法來實現(xiàn),只是比我們寫作水平高而已。就如我們高考作文拿不到滿分,但是不至于連滿分作文都看不懂了吧。要是這樣的話我就為你捉急了啊。
三、嘗試修改JS庫中的代碼
終于到了這個環(huán)節(jié)了,但是我要強調(diào)一下,不要輕易去修改網(wǎng)絡(luò)上流行的代碼。這里本來就是將如何修改代碼,但是為什么又不要輕易去修改呢?大家不要疑惑,不讓修改是考慮到,這些JS庫,有非常專業(yè)的團隊在維護,代碼嚴謹性非常高,如果你改了,很可能影響整個JS庫的使用。即使真是一個Bug或者需要個人定制功能,建議重新實現(xiàn)和擴展。這樣有利于JS庫的升級和自己實現(xiàn)的代碼可以獨立未獲。如果你真的修改了JS庫的代碼,請記住,一定要記錄到文檔,否者升級了JS庫,你所修改的代碼就會被覆蓋,你做工作就白費了。通常慣例,也是允許修改庫代碼的,所以大家要謹記。
這里我就以我在工作當(dāng)中遇到的一個例子,來給大家講解。
看到右側(cè)有一個本地保存的提示信息了吧,很多人都想把這個信息給去除,官方也提供的關(guān)閉參數(shù),但是無法達到我們預(yù)期不提示的效果,但是把自動保存間隔時間設(shè)計很長時間,似乎就能達到預(yù)期效果,但是這個方法確實是不太合理的。
首先我們是要找到這段提示的出處
通過上圖我們看到,其實這個就是一個配置文件,如何使用,我們可以靠猜,首先我們看到這個值對應(yīng)的鍵名是success,一看這個,就知道很難找的,但是我們又看到autosave這個節(jié)點名稱,我們想都不想,這個節(jié)點肯定會出現(xiàn)在代碼里。我們就拿這個去搜索,看下兩張圖。
這是我找到最可能是導(dǎo)致提示信息出現(xiàn)的兩段代碼。我們可以細細讀一下這些兩段代碼,看看各是什么用途
這里提供一個博文:http://www.kissthink.com/archive/--4232.html
這里可以讓我們知道,第二張圖,其實就是為了讓自動保存允許起來,所以我們放到***張圖。
我們發(fā)現(xiàn)了這關(guān)鍵字,有沒有印象,這個關(guān)鍵字是在哪里見過,對這個就是配置文件里的,我們開始的時候就說,設(shè)置間隔時間起效過,設(shè)置啟用自動保存這個參數(shù)卻不見作用,這樣我們所搜下關(guān)鍵字enableAutoSave,整個庫里面都找不到。這個說明這個功能根本沒有實現(xiàn)。
我們把這個產(chǎn)生在代碼里使用上級可以了。結(jié)果如下圖:
總結(jié),這里只是為了實現(xiàn)效果,其他地方的代碼我沒有去深究,但是我想這樣修改應(yīng)該不會影響其他地方。我認為修改別人的代碼不能,難的是修改后不會導(dǎo)致新的問題參數(shù)。再次強調(diào),不要輕易跟我一樣再代碼里做修改。如果能找到代碼外的實現(xiàn)方式是***的。
版權(quán)聲明:
本文由z-albert原創(chuàng)并發(fā)布于博客園,歡迎轉(zhuǎn)載,未經(jīng)本人同意不可以修改原文內(nèi)容且必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,否則保留追究法律責(zé)任的權(quán)利。如有問題,歡迎留言,也可以通過y442926727@qq.com 聯(lián)系我,非常感謝。
由于本人技術(shù)能力和文字表達能力有限,若有描述錯誤或描述不清,懇請批評指正!有興趣者可加群:144063225參與交流
更多內(nèi)容,敬請觀注博客:http://www.cnblogs.com/z-albert/