亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

淺談javascript的調(diào)試

 更新時(shí)間:2015年01月28日 15:12:15   投稿:hebedich  
本文主要向大家講述了使用javascript進(jìn)行調(diào)試的方法的過程,推薦給小伙伴們參考下。

最近比較吐槽,大家都知道,現(xiàn)在web前端相對(duì)幾年前來說已經(jīng)變得很重了,各種js框架,各種面對(duì)對(duì)象,而且項(xiàng)目多了,就會(huì)提取公共模塊。

  這些模塊的UI展示都一樣,不一樣的就是后臺(tái)邏輯,舉個(gè)例子吧,我們做企業(yè)差旅的時(shí)候,通常都有一個(gè)成本中心的js公共模塊,客戶在預(yù)定機(jī)票的時(shí)候來填寫這個(gè)成本中心,而這種成本中心分布在online,offline和app等預(yù)定端,這樣也是方便后期和客戶公司進(jìn)行月結(jié)算。

  我們還知道,項(xiàng)目做大了,復(fù)雜化了,SOA化了之后,很多問題就來了,就像web中的一個(gè)理論,所有前端的數(shù)據(jù)都是不可信的,那對(duì)方團(tuán)隊(duì)的接口數(shù)據(jù)又何嘗不是,以前項(xiàng)目小的時(shí)候,不會(huì)那么不自信,也只會(huì)在Logic error的時(shí)候會(huì)記錄下日志,正常的業(yè)務(wù)流程一般很少記錄,畢竟info日志看著不美觀,而且還會(huì)消耗服務(wù)器帶寬,也還會(huì)拖累web的性能。

  但是項(xiàng)目大了,當(dāng)你某天在項(xiàng)目中遇到了奇怪的bug時(shí),你靠著殘缺不全的日志,好不容易用肉眼逐行追溯到了接口,但是參數(shù)太多,無法準(zhǔn)確的還原接口的參數(shù)數(shù)據(jù),但是你又100%的自信認(rèn)定肯定就是接口的返回問題,但是又拿不出完整的報(bào)文,這時(shí)候你又沒法找接口提供方,當(dāng)時(shí)那個(gè)無奈呀,多想最好每行都有日志該多好啊。

  有了教訓(xùn)后,記流程日志的趨勢(shì)越來越盛行,最終也釀造了一個(gè)年初的大事件,稀里糊涂的說了一大堆,web后端如此,那現(xiàn)在的重前端不也一樣要記錄日志么?我們知道既然是公共的js模塊,那這個(gè)模塊肯定自己封裝了一些方法,肯定是絕對(duì)不可以讓第三方程序去操作它自己的文本結(jié)點(diǎn),比如下面這樣:

復(fù)制代碼 代碼如下:

<!--third  module -->
公司:<input type="text" id="company" value="xxx有限公司" />
員工姓名:<input type="text" id="username" value="張三" />
<!-- -->
<script type="text/javascript">
    //成本中心
    var costCenter = (function () {
         var company = (document.getElementById("company") || "") && document.getElementById("company").value;
         var username = (document.getElementById("username") || "") && document.getElementById("username").value;
         var result = {
             getInfo: function () {
                 return { company: company, username: username };
             },
             validation: function () {
                 return Boolean(company && username);
             }
         };
         return result;
     })();
 </script>

  為了簡(jiǎn)化操作,第三方UI提供了公司名和員工姓名的UI結(jié)點(diǎn),并且封裝了一個(gè)costcenter類來提供讀取方法,可以看到,我的預(yù)定程序只需讀取costCenter.getInfo就好了,也起到了一個(gè)封裝的作用。

  但是問題就出現(xiàn)在這里,項(xiàng)目實(shí)戰(zhàn)中會(huì)因?yàn)楦鞣N原因?qū)е略赾ostcenter中取不到值,當(dāng)然也可能是common ui的bug。

  但是當(dāng)時(shí)你又不能非常確定是否真的取到了值,但是在邏輯上就算取不到值,原則上你也不能阻止訂單提交,所以為了徹底追蹤bug,就寫了個(gè)logCenter單例類來記錄日志。通常用js來記錄log有這種方法。

<1> ajax

  這種方式很容易想到,但是你使用原生的xmlhttprequest的話,還需要考慮瀏覽器兼容,但不用原生的話,就要借助于第三方框架,比如jquery,但是畢竟還是有很多公司是不使用jquery的,所以這個(gè)要根據(jù)實(shí)際的需要來使用了。

復(fù)制代碼 代碼如下:

    //日志中心
    var logCenter = (function () {
        var result = {
            info: function (title, message) {
                //ajax操作
                $.get("                 }, "post");
             }
         };
         return result;
     })();

<2>image

  我們的dom中有一個(gè)叫做image的對(duì)象,所以可以通過動(dòng)態(tài)給它的src賦值來達(dá)到請(qǐng)求后臺(tái)url的目的,同時(shí)在url中加上我們需要傳遞 title和message信息,這種動(dòng)態(tài)給image.src的方式是不需要考慮瀏覽器兼容性的問題,非常不錯(cuò)。

復(fù)制代碼 代碼如下:

相關(guān)文章

  • 深入理解Javascript中的觀察者模式

    深入理解Javascript中的觀察者模式

    觀察者模式又稱發(fā)布訂閱模式,是一種最常用的設(shè)計(jì)模式之一了。下面這篇文章主要給大家深入的介紹了Javascript中觀察者模式的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-02-02
  • 超詳細(xì)的JavaScript基本語(yǔ)法規(guī)則

    超詳細(xì)的JavaScript基本語(yǔ)法規(guī)則

    這篇文章主要介紹了JavaScript基本語(yǔ)法規(guī)則,保姆級(jí)的詳細(xì)教程,萬字長(zhǎng)文詳細(xì)的列出了JavaScript的各種語(yǔ)法,建議收藏系列,希望可以有所幫助
    2021-08-08
  • JS中處理時(shí)間之setUTCMinutes()方法的使用

    JS中處理時(shí)間之setUTCMinutes()方法的使用

    這篇文章主要介紹了JavaScript中處理時(shí)間之setUTCMinutes()方法的使用,是JavaScript入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-06-06
  • 運(yùn)算符&&的三個(gè)不同層次

    運(yùn)算符&&的三個(gè)不同層次

    “&&”運(yùn)算符可以從三個(gè)不同的層次進(jìn)行理解。
    2013-04-04
  • HTML代碼中標(biāo)簽的全部屬性 中文注釋說明

    HTML代碼中標(biāo)簽的全部屬性 中文注釋說明

    所有在IE環(huán)境下有效可用的對(duì)象屬性都在下面.學(xué)習(xí)HTML的朋友可以借鑒學(xué)習(xí),也可以拿去嚇人,
    2009-03-03
  • javascript下for循環(huán)用法小結(jié)

    javascript下for循環(huán)用法小結(jié)

    javascript下for循環(huán)用法小結(jié)...
    2007-07-07
  • 全面了解js中的script標(biāo)簽

    全面了解js中的script標(biāo)簽

    下面小編就為大家?guī)硪黄媪私鈐s中的script標(biāo)簽。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-07-07
  • fromCharCode和charCodeAt 方法

    fromCharCode和charCodeAt 方法

    fromCharCode和charCodeAt 方法...
    2006-12-12
  • JavaScript之編碼規(guī)范 推薦

    JavaScript之編碼規(guī)范 推薦

    JavaScript是一種語(yǔ)法靈活,簡(jiǎn)單易懂的腳本語(yǔ)言。正因?yàn)殪`活,因此很多人在編寫代碼時(shí),顯得很隨意,這就導(dǎo)致后期的修改、擴(kuò)展和維護(hù)變得異常困難。遵循統(tǒng)一的編碼規(guī)范,不僅對(duì)C++和Java這種編譯型語(yǔ)言很重要,對(duì)JavaScript腳本語(yǔ)言也同樣如此
    2012-05-05
  • javascript函數(shù)重載解決方案分享

    javascript函數(shù)重載解決方案分享

    本文主要介紹了javascript函數(shù)重載解決方案,利用JavaScript中的特殊對(duì)象arguments來模擬函數(shù)重載。用它來判斷傳入?yún)?shù)的個(gè)數(shù)或類型以區(qū)分重載
    2014-02-02

最新評(píng)論