全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 1997|回复: 7

一起分析下这段代码

[复制链接]
发表于 2017-8-5 19:33:48 | 显示全部楼层 |阅读模式
本帖最后由 踏雪寻梅 于 2017-8-5 19:41 编辑
  1. <script type="text/javascript">window.NREUM||(NREUM={}),__nr_require=function(e,n,t){function r(t){if(!n[t]){var o=n[t]={exports:{}};e[t][0].call(o.exports,function(n){var o=e[t][1][n];return r(o||n)},o,o.exports)}return n[t].exports}if("function"==typeof __nr_require)return __nr_require;for(var o=0;o<t.length;o++)r(t[o]);return r}({1:[function(e,n,t){function r(){}function o(e,n,t){return function(){return i(e,[c.now()].concat(u(arguments)),n?null:this,t),n?void 0:this}}var i=e("handle"),a=e(2),u=e(3),f=e("ee").get("tracer"),c=e("loader"),s=NREUM;"undefined"==typeof window.newrelic&&(newrelic=s);var p=["setPageViewName","setCustomAttribute","setErrorHandler","finished","addToTrace","inlineHit","addRelease"],d="api-",l=d+"ixn-";a(p,function(e,n){s[n]=o(d+n,!0,"api")}),s.addPageAction=o(d+"addPageAction",!0),s.setCurrentRouteName=o(d+"routeName",!0),n.exports=newrelic,s.interaction=function(){return(new r).get()};var m=r.prototype={createTracer:function(e,n){var t={},r=this,o="function"==typeof n;return i(l+"tracer",[c.now(),e,t],r),function(){if(f.emit((o?"":"no-")+"fn-start",[c.now(),r,o],t),o)try{return n.apply(this,arguments)}finally{f.emit("fn-end",[c.now()],t)}}}};a("setName,setAttribute,save,ignore,onEnd,getContext,end,get".split(","),function(e,n){m[n]=o(l+n)}),newrelic.noticeError=function(e){"string"==typeof e&&(e=new Error(e)),i("err",[e,c.now()])}},{}],2:[function(e,n,t){function r(e,n){var t=[],r="",i=0;for(r in e)o.call(e,r)&&(t[i]=n(r,e[r]),i+=1);return t}var o=Object.prototype.hasOwnProperty;n.exports=r},{}],3:[function(e,n,t){function r(e,n,t){n||(n=0),"undefined"==typeof t&&(t=e?e.length:0);for(var r=-1,o=t-n||0,i=Array(o<0?0:o);++r<o;)i[r]=e[n+r];return i}n.exports=r},{}],4:[function(e,n,t){n.exports={exists:"undefined"!=typeof window.performance&&window.performance.timing&&"undefined"!=typeof window.performance.timing.navigationStart}},{}],ee:[function(e,n,t){function r(){}function o(e){function n(e){return e&&e instanceof r?e:e?f(e,u,i):i()}function t(t,r,o,i){if(!d.aborted||i){e&&e(t,r,o);for(var a=n(o),u=m(t),f=u.length,c=0;c<f;c++)u[c].apply(a,r);var p=s[y[t]];return p&&p.push([b,t,r,a]),a}}function l(e,n){v[e]=m(e).concat(n)}function m(e){return v[e]||[]}function w(e){return p[e]=p[e]||o(t)}function g(e,n){c(e,function(e,t){n=n||"feature",y[t]=n,n in s||(s[n]=[])})}var v={},y={},b={on:l,emit:t,get:w,listeners:m,context:n,buffer:g,abort:a,aborted:!1};return b}function i(){return new r}function a(){(s.api||s.feature)&&(d.aborted=!0,s=d.backlog={})}var u="nr@context",f=e("gos"),c=e(2),s={},p={},d=n.exports=o();d.backlog=s},{}],gos:[function(e,n,t){function r(e,n,t){if(o.call(e,n))return e[n];var r=t();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,n,{value:r,writable:!0,enumerable:!1}),r}catch(i){}return e[n]=r,r}var o=Object.prototype.hasOwnProperty;n.exports=r},{}],handle:[function(e,n,t){function r(e,n,t,r){o.buffer([e],r),o.emit(e,n,t)}var o=e("ee").get("handle");n.exports=r,r.ee=o},{}],id:[function(e,n,t){function r(e){var n=typeof e;return!e||"object"!==n&&"function"!==n?-1:e===window?0:a(e,i,function(){return o++})}var o=1,i="nr@id",a=e("gos");n.exports=r},{}],loader:[function(e,n,t){function r(){if(!x++){var e=h.info=NREUM.info,n=d.getElementsByTagName("script")[0];if(setTimeout(s.abort,3e4),!(e&&e.licenseKey&&e.applicationID&&n))return s.abort();c(y,function(n,t){e[n]||(e[n]=t)}),f("mark",["onload",a()+h.offset],null,"api");var t=d.createElement("script");t.src="https://"+e.agent,n.parentNode.insertBefore(t,n)}}function o(){"complete"===d.readyState&&i()}function i(){f("mark",["domContent",a()+h.offset],null,"api")}function a(){return E.exists&&performance.now?Math.round(performance.now()):(u=Math.max((new Date).getTime(),u))-h.offset}var u=(new Date).getTime(),f=e("handle"),c=e(2),s=e("ee"),p=window,d=p.document,l="addEventListener",m="attachEvent",w=p.XMLHttpRequest,g=w&&w.prototype;NREUM.o={ST:setTimeout,SI:p.setImmediate,CT:clearTimeout,XHR:w,REQ:p.Request,EV:p.Event,PR:p.Promise,MO:p.MutationObserver};var v=""+location,y={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",agent:"js-agent.newrelic.com/nr-1044.min.js"},b=w&&g&&g[l]&&!/CriOS/.test(navigator.userAgent),h=n.exports={offset:u,now:a,origin:v,features:{},xhrWrappable:b};e(1),d[l]?(d[l]("DOMContentLoaded",i,!1),p[l]("load",r,!1)):(d[m]("onreadystatechange",o),p[m]("onload",r)),f("mark",["firstbyte",u],null,"api");var x=0,E=e(4)},{}]},{},["loader"]);</script>
复制代码
发表于 2017-8-5 19:43:31 | 显示全部楼层
就不能格式化一下再发吗= -
 楼主| 发表于 2017-8-5 19:50:42 | 显示全部楼层
  1. <script type="text/javascript">window.NREUM || (NREUM = {}),
  2.   __nr_require = function(e, n, t) {
  3.     function r(t) {
  4.       if (!n[t]) {
  5.         var o = n[t] = {
  6.           exports: {}
  7.         };
  8.         e[t][0].call(o.exports,
  9.         function(n) {
  10.           var o = e[t][1][n];
  11.           return r(o || n)
  12.         },
  13.         o, o.exports)
  14.       }
  15.       return n[t].exports
  16.     }
  17.     if ("function" == typeof __nr_require) return __nr_require;
  18.     for (var o = 0; o < t.length; o++) r(t[o]);
  19.     return r
  20.   } ({
  21.     1 : [function(e, n, t) {
  22.       function r() {}
  23.       function o(e, n, t) {
  24.         return function() {
  25.           return i(e, [c.now()].concat(u(arguments)), n ? null: this, t),
  26.           n ? void 0 : this
  27.         }
  28.       }
  29.       var i = e("handle"),
  30.       a = e(2),
  31.       u = e(3),
  32.       f = e("ee").get("tracer"),
  33.       c = e("loader"),
  34.       s = NREUM;
  35.       "undefined" == typeof window.newrelic && (newrelic = s);
  36.       var p = ["setPageViewName", "setCustomAttribute", "setErrorHandler", "finished", "addToTrace", "inlineHit", "addRelease"],
  37.       d = "api-",
  38.       l = d + "ixn-";
  39.       a(p,
  40.       function(e, n) {
  41.         s[n] = o(d + n, !0, "api")
  42.       }),
  43.       s.addPageAction = o(d + "addPageAction", !0),
  44.       s.setCurrentRouteName = o(d + "routeName", !0),
  45.       n.exports = newrelic,
  46.       s.interaction = function() {
  47.         return (new r).get()
  48.       };
  49.       var m = r.prototype = {
  50.         createTracer: function(e, n) {
  51.           var t = {},
  52.           r = this,
  53.           o = "function" == typeof n;
  54.           return i(l + "tracer", [c.now(), e, t], r),
  55.           function() {
  56.             if (f.emit((o ? "": "no-") + "fn-start", [c.now(), r, o], t), o) try {
  57.               return n.apply(this, arguments)
  58.             } finally {
  59.               f.emit("fn-end", [c.now()], t)
  60.             }
  61.           }
  62.         }
  63.       };
  64.       a("setName,setAttribute,save,ignore,onEnd,getContext,end,get".split(","),
  65.       function(e, n) {
  66.         m[n] = o(l + n)
  67.       }),
  68.       newrelic.noticeError = function(e) {
  69.         "string" == typeof e && (e = new Error(e)),
  70.         i("err", [e, c.now()])
  71.       }
  72.     },
  73.     {}],
  74.     2 : [function(e, n, t) {
  75.       function r(e, n) {
  76.         var t = [],
  77.         r = "",
  78.         i = 0;
  79.         for (r in e) o.call(e, r) && (t[i] = n(r, e[r]), i += 1);
  80.         return t
  81.       }
  82.       var o = Object.prototype.hasOwnProperty;
  83.       n.exports = r
  84.     },
  85.     {}],
  86.     3 : [function(e, n, t) {
  87.       function r(e, n, t) {
  88.         n || (n = 0),
  89.         "undefined" == typeof t && (t = e ? e.length: 0);
  90.         for (var r = -1,
  91.         o = t - n || 0,
  92.         i = Array(o < 0 ? 0 : o); ++r < o;) i[r] = e[n + r];
  93.         return i
  94.       }
  95.       n.exports = r
  96.     },
  97.     {}],
  98.     4 : [function(e, n, t) {
  99.       n.exports = {
  100.         exists: "undefined" != typeof window.performance && window.performance.timing && "undefined" != typeof window.performance.timing.navigationStart
  101.       }
  102.     },
  103.     {}],
  104.     ee: [function(e, n, t) {
  105.       function r() {}
  106.       function o(e) {
  107.         function n(e) {
  108.           return e && e instanceof r ? e: e ? f(e, u, i) : i()
  109.         }
  110.         function t(t, r, o, i) {
  111.           if (!d.aborted || i) {
  112.             e && e(t, r, o);
  113.             for (var a = n(o), u = m(t), f = u.length, c = 0; c < f; c++) u[c].apply(a, r);
  114.             var p = s[y[t]];
  115.             return p && p.push([b, t, r, a]),
  116.             a
  117.           }
  118.         }
  119.         function l(e, n) {
  120.           v[e] = m(e).concat(n)
  121.         }
  122.         function m(e) {
  123.           return v[e] || []
  124.         }
  125.         function w(e) {
  126.           return p[e] = p[e] || o(t)
  127.         }
  128.         function g(e, n) {
  129.           c(e,
  130.           function(e, t) {
  131.             n = n || "feature",
  132.             y[t] = n,
  133.             n in s || (s[n] = [])
  134.           })
  135.         }
  136.         var v = {},
  137.         y = {},
  138.         b = {
  139.           on: l,
  140.           emit: t,
  141.           get: w,
  142.           listeners: m,
  143.           context: n,
  144.           buffer: g,
  145.           abort: a,
  146.           aborted: !1
  147.         };
  148.         return b
  149.       }
  150.       function i() {
  151.         return new r
  152.       }
  153.       function a() { (s.api || s.feature) && (d.aborted = !0, s = d.backlog = {})
  154.       }
  155.       var u = "nr@context",
  156.       f = e("gos"),
  157.       c = e(2),
  158.       s = {},
  159.       p = {},
  160.       d = n.exports = o();
  161.       d.backlog = s
  162.     },
  163.     {}],
  164.     gos: [function(e, n, t) {
  165.       function r(e, n, t) {
  166.         if (o.call(e, n)) return e[n];
  167.         var r = t();
  168.         if (Object.defineProperty && Object.keys) try {
  169.           return Object.defineProperty(e, n, {
  170.             value: r,
  171.             writable: !0,
  172.             enumerable: !1
  173.           }),
  174.           r
  175.         } catch(i) {}
  176.         return e[n] = r,
  177.         r
  178.       }
  179.       var o = Object.prototype.hasOwnProperty;
  180.       n.exports = r
  181.     },
  182.     {}],
  183.     handle: [function(e, n, t) {
  184.       function r(e, n, t, r) {
  185.         o.buffer([e], r),
  186.         o.emit(e, n, t)
  187.       }
  188.       var o = e("ee").get("handle");
  189.       n.exports = r,
  190.       r.ee = o
  191.     },
  192.     {}],
  193.     id: [function(e, n, t) {
  194.       function r(e) {
  195.         var n = typeof e;
  196.         return ! e || "object" !== n && "function" !== n ? -1 : e === window ? 0 : a(e, i,
  197.         function() {
  198.           return o++
  199.         })
  200.       }
  201.       var o = 1,
  202.       i = "nr@id",
  203.       a = e("gos");
  204.       n.exports = r
  205.     },
  206.     {}],
  207.     loader: [function(e, n, t) {
  208.       function r() {
  209.         if (!x++) {
  210.           var e = h.info = NREUM.info,
  211.           n = d.getElementsByTagName("script")[0];
  212.           if (setTimeout(s.abort, 3e4), !(e && e.licenseKey && e.applicationID && n)) return s.abort();
  213.           c(y,
  214.           function(n, t) {
  215.             e[n] || (e[n] = t)
  216.           }),
  217.           f("mark", ["onload", a() + h.offset], null, "api");
  218.           var t = d.createElement("script");
  219.           t.src = "https://" + e.agent,
  220.           n.parentNode.insertBefore(t, n)
  221.         }
  222.       }
  223.       function o() {
  224.         "complete" === d.readyState && i()
  225.       }
  226.       function i() {
  227.         f("mark", ["domContent", a() + h.offset], null, "api")
  228.       }
  229.       function a() {
  230.         return E.exists && performance.now ? Math.round(performance.now()) : (u = Math.max((new Date).getTime(), u)) - h.offset
  231.       }
  232.       var u = (new Date).getTime(),
  233.       f = e("handle"),
  234.       c = e(2),
  235.       s = e("ee"),
  236.       p = window,
  237.       d = p.document,
  238.       l = "addEventListener",
  239.       m = "attachEvent",
  240.       w = p.XMLHttpRequest,
  241.       g = w && w.prototype;
  242.       NREUM.o = {
  243.         ST: setTimeout,
  244.         SI: p.setImmediate,
  245.         CT: clearTimeout,
  246.         XHR: w,
  247.         REQ: p.Request,
  248.         EV: p.Event,
  249.         PR: p.Promise,
  250.         MO: p.MutationObserver
  251.       };
  252.       var v = "" + location,
  253.       y = {
  254.         beacon: "bam.nr-data.net",
  255.         errorBeacon: "bam.nr-data.net",
  256.         agent: "js-agent.newrelic.com/nr-1044.min.js"
  257.       },
  258.       b = w && g && g[l] && !/CriOS/.test(navigator.userAgent),
  259.       h = n.exports = {
  260.         offset: u,
  261.         now: a,
  262.         origin: v,
  263.         features: {},
  264.         xhrWrappable: b
  265.       };
  266.       e(1),
  267.       d[l] ? (d[l]("DOMContentLoaded", i, !1), p[l]("load", r, !1)) : (d[m]("onreadystatechange", o), p[m]("onload", r)),
  268.       f("mark", ["firstbyte", u], null, "api");
  269.       var x = 0,
  270.       E = e(4)
  271.     },
  272.     {}]
  273.   },
  274.   {},
  275.   ["loader"]);</script>
复制代码
发表于 2017-8-5 20:17:28 | 显示全部楼层
这种光找字母就头疼死
发表于 2017-8-5 20:19:54 来自手机 | 显示全部楼层
函数和变量全是单字母,看的想死
发表于 2017-8-5 21:30:41 | 显示全部楼层
头大,结合使用环境还好理解点...
发表于 2017-8-6 09:24:48 来自手机 | 显示全部楼层
帮你顶上,寻求大佬看吧
发表于 2017-8-6 09:34:12 来自手机 | 显示全部楼层
看着就头痛啊。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-1-18 14:56 , Processed in 0.073793 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表