本地修改js代碼並時時生效的解決辦法


  js作為客戶端語言(當然它也可以作服務端語言),非常強悍,一般情況下,我們都是在開發階段不停的改,然后上線之后就作為穩定運行的代碼。

  然而有時候可能因為js寫得有問題,導致上線后,某些功能無法使用,這就悲催了,而且一般的公司上線應該都不會很容易。

  那么對於這種js一類的修改,如果能在本地臨時生效,做一些緊急問題的修復,就很重要了。(我也是遇到這個坑,只要把這次臨時問題修復,等下一個功能代碼要上線時,再修復也是可以的)

  那么,怎樣做到本地修改js文件,從而達到代碼運行ok的效果呢? 本文將會給出多種解決方案:

一、 使用fiddler攔截請求更改參數!!!

  如果是因為某些必要參數傳遞不對,從而導致服務端無法正常運行,那么我們可以直接攔截請求,修改參數,再次發送到服務端,從而規避該問題。

  這種情況一般發生在使用ajax訪問服務端程序時出現,比如某個值因為某種原因,導致js發送ajax請求時,少了某個必要參數,從而導致服務端報參數錯誤。

  具體解決辦法就是:下載並安裝http調試神器fiddler, 設置對該站點的攔截請求如: bpu http://a.com, 在攔截到后,添加該必要參數,點擊繼續請求,從而達到通過服務端驗證的需求,如果要求多次操作,那么還可以設置自動修改攔截請求參數的設置,具體方法請自行研究fiddler自動攔截請求方法。

  當然了,這種請求主要針對http協議,對於https還是顯得有些為難的,這也是為什么https會如此受追棒的原因吧。

二、 通過使用瀏覽器插件Tampermonkey,動態修改js代碼!!!

  如果需要修改處理邏輯較多,那么,可以借助Tampermonkey插件,直接覆蓋某js文件,從而達到請求更改的處理。頁面部分處理如下:

 

   主要填寫需要替換的js文件的路徑,然后寫需要覆蓋的js邏輯,保存,刷新即可生效。

三、 直接通過控制台運行代碼,覆蓋原有代碼生效!!!

  我平時主要使用控制台來計算一些自己試驗性質的代碼,但是后來我發現,這個功能完全可以覆蓋到真正生產中的代碼里去。

  比如有一個按鈕的監聽事件(假設使用jquery寫的)

$('#id').on('click', function() {
    alert(111);
 }); 

  那么,如果,如果我想改怎么辦? 解決為,直接在控制台重新注冊該事件即可,即運行:

$('#id').off().on(function() {
     alert('my alert');
 });

這樣,當點擊該按鈕時,就會生效為后面代碼的功能了。

  注意這里有一事件冒泡的問題,一定要先解綁事件,再注冊事件,否則會有多個事件響應。

  那么,對於函數一類呢,則是直接以相同的函數名稱重寫方法即可,而根據js的運行原理,即會運行你后面寫的方法。

 

  好了,本地修改js並生效的方法,大概就說到這里,個人感覺也夠用了。

  js作為客戶端語言確實很方便,尤其是明白了發一次上線代碼不容易之后。有時真能解燃眉之急!!!

  另作聲明: 雖然js可以方便本地更改js生效,但是這並不意味着js顯得太不安全了,因為這里所有的操作都是以在你本機上操作為基礎前提的,也就是說你會為你所有的更改負責,而不是js為你的安全買單!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM