摘要:動態(tài)創(chuàng)建標(biāo)簽很常用,比如等等技術(shù)都會用到,有時候我們會希望能夠監(jiān)控和攔截動態(tài)創(chuàng)建的標(biāo)簽。下面提供了一種代理的方法來監(jiān)控。上面的代碼加載完后,就可以監(jiān)控到或者兩種方式加載的了原文
動態(tài)創(chuàng)建script標(biāo)簽很常用,比如jsonp、amd 等等技術(shù)都會用到, 有時候我們會希望能夠監(jiān)控和攔截動態(tài)創(chuàng)建的script標(biāo)簽。
下面提供了一種代理document.createElement的方法來監(jiān)控。
var _createElement = document.createElement var __define_src = function(script){ var src Object.defineProperty(script,"src",{ get : function(){ return src }, set : function(s){ src = s script.setAttribute("src",s) } }) var _setAttribute = script.setAttribute script.setAttribute = function(){ var args = Array.prototype.slice.call(arguments) if(args[0] === "src"){ //do something here console.log("setAttribute",args[1]) } _setAttribute.apply(script,args) } } document.createElement = function(tagName){ var dom dom = _createElement.call(document,tagName) if(tagName.toLowerCase() === "script"){ __define_src(dom) } return dom }
上面的代碼加載完后,就可以監(jiān)控到 script.src 或者 script.setAttribute 兩種方式加載的JS了
var script = document.createElement("script") script.src = "http://s11.#/z_stat.php?id=1256295486&web_id=1256295486" script.setAttribute("src","https://s11.#/z_stat.php?id=1256295486&web_id=1256295486")
原文 https://friskfly.github.io/2016/04/12/%E7%9B%91%E6%8E%A7%E5%8A%A8%E6%80%81%E5%88%9B%E5%BB%BA%E7%9A%84script%E6%A0%87%E7%AD%BE/
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/79237.html
摘要:二需要處理哪些異常對于前端來說,我們可做的異常捕獲還真不少。總結(jié)一下,大概如下語法錯誤代碼異常請求異常靜態(tài)資源加載異常異常異??缬虮罎⒑涂D下面我會針對每種具體情況來說明如何處理這些異常。 前端一直是距離用戶最近的一層,隨著產(chǎn)品的日益完善,我們會更加注重用戶體驗,而前端異常卻如鯁在喉,甚是煩人。一、為什么要處理異常?異常是不可控的,會影響最終的呈現(xiàn)結(jié)果,但是我們有充分的理由去做這樣的事...
摘要:項目中我們可通過設(shè)置采集率,或?qū)σ?guī)定時間內(nèi)數(shù)據(jù)匯總再上報,減少請求數(shù)量,從而緩解服務(wù)端壓力。借鑒別人的一個例子只采集上報錯誤參考文檔高級程序設(shè)計如何優(yōu)雅處理前端異常作者以樂之名本文原創(chuàng),有不當(dāng)?shù)牡胤綒g迎指出。 showImg(https://segmentfault.com/img/bVbnuud?w=640&h=640); 錯誤類型 即時運(yùn)行錯誤 (代碼錯誤) 資源加載錯誤 常見...
摘要:本文的介紹的是如何設(shè)計一個通用的可以以較小的侵入性,自動上報前端的性能數(shù)據(jù)。具體的做法可以看我的上一篇文章在單頁應(yīng)用中,如何優(yōu)雅的監(jiān)聽的變化。三如何上報性能數(shù)據(jù)那么如何上報性能數(shù)據(jù)呢,我們第一反應(yīng)就是通過請求的形式來上報前端性能數(shù)據(jù)。 ??最近在做一個較為通用的前端性能監(jiān)控平臺,區(qū)別于前端異常監(jiān)控,前端的性能監(jiān)控主要需要上報和展示的是前端的性能數(shù)據(jù),包括首頁渲染時間、每個頁面的白屏?xí)r...
摘要:本文的介紹的是如何設(shè)計一個通用的可以以較小的侵入性,自動上報前端的性能數(shù)據(jù)。具體的做法可以看我的上一篇文章在單頁應(yīng)用中,如何優(yōu)雅的監(jiān)聽的變化。三如何上報性能數(shù)據(jù)那么如何上報性能數(shù)據(jù)呢,我們第一反應(yīng)就是通過請求的形式來上報前端性能數(shù)據(jù)。 ??最近在做一個較為通用的前端性能監(jiān)控平臺,區(qū)別于前端異常監(jiān)控,前端的性能監(jiān)控主要需要上報和展示的是前端的性能數(shù)據(jù),包括首頁渲染時間、每個頁面的白屏?xí)r...
閱讀 3517·2021-11-15 11:38
閱讀 838·2021-11-08 13:27
閱讀 2251·2021-07-29 14:50
閱讀 2978·2019-08-29 13:06
閱讀 849·2019-08-29 11:22
閱讀 2420·2019-08-29 11:04
閱讀 3512·2019-08-28 18:23
閱讀 896·2019-08-26 13:46