├── README.md
├── ajax.ts
├── ajax.js
├── logger.ts
├── logger.js
└── index.html
/README.md:
--------------------------------------------------------------------------------
1 | # logger
2 |
--------------------------------------------------------------------------------
/ajax.ts:
--------------------------------------------------------------------------------
1 | (function ($, w) {
2 | w._ajax = $.ajax;
3 | $.ajax = function (arg) {
4 | var t = new Date().getTime();
5 | var success = arg.success
6 | // var successArg = arg.success
7 | arg.success = function () {
8 | var data = arguments
9 | var newT = new Date().getTime();
10 | // console.log(newT - t);
11 | var newS = function () {
12 | console.log(1111111)
13 | success.call(this, data)
14 | }
15 | _ajax({
16 | url: 'http://www.daiwei.org/vue/server/home.php?inAjax=1&do=getRewardList',
17 | success: newS
18 | });
19 | }
20 | return _ajax.call($, arg)
21 | };
22 | })(jQuery, window);
23 |
--------------------------------------------------------------------------------
/ajax.js:
--------------------------------------------------------------------------------
1 | (function ($, w) {
2 | w._ajax = $.ajax;
3 | $.ajax = function (arg) {
4 | var t = new Date().getTime();
5 | var success = arg.success
6 | // var successArg = arg.success
7 | arg.success = function () {
8 | var data = arguments
9 | var newT = new Date().getTime();
10 | // console.log(newT - t);
11 | var newS = function () {
12 | console.log(1111111)
13 | success.call(this, data)
14 | }
15 | _ajax({
16 | url: 'http://www.daiwei.org/vue/server/home.php?inAjax=1&do=getRewardList',
17 | success: newS
18 | });
19 | }
20 | return _ajax.call($, arg)
21 | };
22 | })(jQuery, window);
23 | // (function ($, w) {
24 | // var jQ = $;
25 | // $.ajax = function (...arg) {
26 | // var t = new Date().getTime();
27 | // console.log('time', t);
28 | // return function () {
29 | // jQ.ajax.call(this, arg);
30 | // };
31 | // };
32 | // })(jQuery, window);
33 |
--------------------------------------------------------------------------------
/logger.ts:
--------------------------------------------------------------------------------
1 | class Logger {
2 | timing: {
3 | [propName: string]: any
4 | }
5 | constructor () {
6 | this.timing = window.performance.timing
7 | this.initErrorEvent()
8 | }
9 | public getTiming (): any {
10 | var _return = {
11 | // DNS查询耗时
12 | dnsT: this.timing.domainLookupEnd - this.timing.domainLookupStart,
13 | // 白屏时间
14 | loadT: this.timing.domLoading - this.timing.navigationStart,
15 | // request请求耗时
16 | requestT: this.timing.responseEnd - this.timing.responseStart,
17 | // TCP链接耗时
18 | tcpT: this.timing.connectEnd - this.timing.connectStart,
19 | // 解析dom树耗时
20 | renderDomT: this.timing.domComplete - this.timing.domInteractive,
21 | // domready时间(用户可操作时间节点)
22 | readyDomT: this.timing.domContentLoadedEventEnd - this.timing.navigationStart,
23 | // onload时间(总下载时间)
24 | onLoadT: this.timing.loadEventEnd - this.timing.navigationStart
25 | }
26 | return _return
27 | }
28 |
29 | /**
30 | * 初始化error监听事件
31 | */
32 | private initErrorEvent (): void {
33 | /**
34 | * @param {String} errorMessage 错误信息
35 | * @param {String} scriptURL 出错文件的URL
36 | * @param {Number} lineNumber 出错代码的行号
37 | * @param {Number} columnNumber 出错代码的列号
38 | * @param {Object} errorObj 错误信息Object
39 | */
40 | var _this = this
41 |
42 | window.addEventListener('error', function (e) {
43 | setTimeout(function () {
44 | _this.staticError({
45 | errorMessage: e.message,
46 | scriptURL: e.filename,
47 | lineNumber: e.lineno,
48 | columnNumber: e.colno,
49 | errorObj: e.error
50 | });
51 | }, 0);
52 | })
53 | }
54 |
55 | /**
56 | * 事件错误的回调事件
57 | */
58 | public staticError (data: {
59 | [propName: string]: any
60 | }): void {
61 | $.ajax({
62 | url: 'http://web-monitor.hfjy.com/api/web/monitor',
63 | type: 'POST',
64 | dataType: 'json',
65 | data: {
66 | url: window.location.href,
67 | current_time: new Date().getTime(),
68 | js_url: data.scriptURL,
69 | error_info: data.errorMessage,
70 | error_line: data.lineNumber,
71 | error_column: data.columnNumber
72 | }
73 | })
74 | }
75 |
76 | /**
77 | * 页面加载时长的数据信息
78 | */
79 | public fetchPageLoadInfo (): void {
80 | var timingInfo = this.getTiming()
81 | $.ajax({
82 | url: 'http://web-monitor.hfjy.com/api/web/monitor',
83 | type: 'POST',
84 | dataType: 'json',
85 | data: {
86 | url: window.location.href,
87 | current_time: new Date().getTime(),
88 | response_time: timingInfo.loadT
89 | }
90 | })
91 | }
92 | }
93 |
94 | window.logger = new Logger();
95 | window.addEventListener('load', function () {
96 | setTimeout(function () {
97 | logger.fetchPageLoadInfo();
98 | }, 1000);
99 | }, false);
100 |
101 |
--------------------------------------------------------------------------------
/logger.js:
--------------------------------------------------------------------------------
1 | var Logger = /** @class */ (function () {
2 | function Logger() {
3 | this.timing = window.performance.timing;
4 | this.initErrorEvent();
5 | }
6 | Logger.prototype.getTiming = function () {
7 | var _return = {
8 | // DNS查询耗时
9 | dnsT: this.timing.domainLookupEnd - this.timing.domainLookupStart,
10 | // 白屏时间
11 | loadT: this.timing.domLoading - this.timing.navigationStart,
12 | // request请求耗时
13 | requestT: this.timing.responseEnd - this.timing.responseStart,
14 | // TCP链接耗时
15 | tcpT: this.timing.connectEnd - this.timing.connectStart,
16 | // 解析dom树耗时
17 | renderDomT: this.timing.domComplete - this.timing.domInteractive,
18 | // domready时间(用户可操作时间节点)
19 | readyDomT: this.timing.domContentLoadedEventEnd - this.timing.navigationStart,
20 | // onload时间(总下载时间)
21 | onLoadT: this.timing.loadEventEnd - this.timing.navigationStart
22 | };
23 | return _return;
24 | };
25 | /**
26 | * 初始化error监听事件
27 | */
28 | Logger.prototype.initErrorEvent = function () {
29 | /**
30 | * @param {String} errorMessage 错误信息
31 | * @param {String} scriptURL 出错文件的URL
32 | * @param {Number} lineNumber 出错代码的行号
33 | * @param {Number} columnNumber 出错代码的列号
34 | * @param {Object} errorObj 错误信息Object
35 | */
36 | var _this = this;
37 | window.addEventListener('error', function (e) {
38 | setTimeout(function () {
39 | _this.staticError({
40 | errorMessage: e.message,
41 | scriptURL: e.filename,
42 | lineNumber: e.lineno,
43 | columnNumber: e.colno,
44 | errorObj: e.error
45 | });
46 | }, 0);
47 | });
48 | };
49 | /**
50 | * 事件错误的回调事件
51 | */
52 | Logger.prototype.staticError = function (data) {
53 | $.ajax({
54 | url: '',
55 | type: 'POST',
56 | dataType: 'json',
57 | data: {
58 | url: window.location.href,
59 | current_time: new Date().getTime(),
60 | js_url: data.scriptURL,
61 | error_info: data.errorMessage,
62 | error_line: data.lineNumber,
63 | error_column: data.columnNumber
64 | }
65 | });
66 | };
67 | /**
68 | * 页面加载时长的数据信息
69 | */
70 | Logger.prototype.fetchPageLoadInfo = function () {
71 | var timingInfo = this.getTiming();
72 | $.ajax({
73 | url: '',
74 | type: 'POST',
75 | dataType: 'json',
76 | data: {
77 | url: window.location.href,
78 | current_time: new Date().getTime(),
79 | response_time: timingInfo.loadT
80 | }
81 | });
82 | };
83 | return Logger;
84 | }());
85 | window.logger = new Logger();
86 | window.addEventListener('load', function () {
87 | setTimeout(function () {
88 | logger.fetchPageLoadInfo();
89 | }, 1000);
90 | }, false);
91 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | logger
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 | 海风教育 >
22 |
23 |
24 | 海风资讯 >
25 |
26 |
27 | 文章标题 >
28 |
29 |
30 |
文章标题
31 |
时间:2017-12-15标签:在线1对1
32 |
33 |
34 | 据福克斯新闻报道,当被问到释放孟晚舟是否可能成为与中国达成一笔大交易的一部分时,库德洛说,“我无法确保任何事,这件事会对贸易谈判造成怎样的影响,我不能只是坐在这就能完全确定。”
35 | 库德洛称,他无法确认的部分原因是因为执法部门的行动不属于他的职责范围。
36 | 库德洛还表示,目前孟晚舟被逮捕与数月以来和中国的贸易战似乎处于“不同的频道,但他承认这两个问题可能会混在一起。“我无法预测将来会怎样,但他们目前是在不同的频道,而且我觉得将来一段时间都被视为这样的情况。”
37 |
38 |
39 |
40 |
48 |
49 |
64 |
65 |
66 |
67 |
68 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
101 |
102 |
103 |
104 |
106 |
107 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
为什么我为孩子选择海风教育
136 |
137 |
138 |
139 |
140 |
5000 +
141 |
知识切片
142 |
143 |
144 |
3 +
145 |
第三代智能学习系统
146 | 为学员、老师双重赋能
147 |
148 |
149 |
150 |
151 |
5000 +
152 |
知识切片
153 |
154 |
155 |
3 +
156 |
第三代智能学习系统
157 | 为学员、老师双重赋能
158 |
159 |
160 |
161 |
162 |
5000 +
163 |
知识切片
164 |
165 |
166 |
3 +
167 |
第三代智能学习系统
168 | 为学员、老师双重赋能
169 |
170 |
171 |
172 |
173 |
5000 +
174 |
知识切片
175 |
176 |
177 |
3 +
178 |
第三代智能学习系统
179 | 为学员、老师双重赋能
180 |
181 |
182 |
183 |
184 |
185 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 | 1.简历筛选
199 |
200 |
201 |
202 |
203 |
204 | 重点大学教育背景、教学经验达到指定
205 | 级别、持有教师资格证
206 |
207 |
208 |
209 |
210 |
211 |
212 | 2.面试择优
213 |
214 |
215 |
216 |
217 |
218 | 学科学术能力测评、课程课件设计打分、授课专业技能评分、良好的网络授课环境
219 |
220 |
221 |
222 |
223 |
224 |
225 | 3.通用培训
226 |
227 |
228 |
229 |
230 |
231 | 教学方法论、教育心理学、小初高学生心理发展、学员与家长沟通技巧
232 |
233 |
234 |
235 |
236 |
237 |
238 | 4.单科培训
239 |
240 |
241 |
242 |
243 |
244 | 单科指定学情考情、各地区教材版本解读、重难知识点,常规&典型考题培训
245 |
246 |
247 |
248 |
249 |
250 |
251 | 5.试讲考核
252 |
253 |
254 |
255 |
256 |
257 | 3轮分模块试讲考核,多维度指导教师攻破教学盲点和难点
258 |
259 |
260 |
261 |
262 |
263 |
264 | 6.终极考核
265 |
266 |
267 |
268 |
269 |
270 | 通过严格的考核标准及评分体系,正式成为海风教育专职老师
271 |
272 |
273 |
274 |
275 |
276 |
277 |
278 |
6层严选老师
279 |
280 | 名重点大学师资背景的老师
281 |
282 | 经过6层选拔才能成为海风教育专职老师
283 |
284 |
285 |
286 |
287 |
288 |
289 |
290 |
291 |
292 |
293 |
294 |
295 |
296 | 5阶成长课程体系
297 |
298 |
299 | 科学解决小学、初中、高中各阶段学习问题
300 |
301 |
302 |
303 |
304 |
305 |
306 |
307 |
308 |
309 |
310 |
311 |
312 |
313 | 基础水平:差
314 |
315 |
316 | 问题描述:学科基础知识概念模糊,解题困难
317 |
318 |
319 | 解决方案:全面复习基础知识,利用记忆曲线,采用三 步循环式学习方法,做到“日清,周结、月考”,帮助 孩子夯实基础。
320 |
321 |
322 |
325 |
326 |
327 |
328 |
329 |
330 |
331 |
332 |
333 |
334 |
335 |
336 |
337 |
338 |
339 | 基础水平:差
340 |
341 |
342 | 问题描述:学科基础知识概念模糊,解题困难
343 |
344 |
345 | 解决方案:全面复习基础知识,利用记忆曲线,采用三 步循环式学习方法,做到“日清,周结、月考”,帮助 孩子夯实基础。
346 |
347 |
348 |
351 |
352 |
353 |
354 |
355 |
356 |
357 |
358 |
359 |
360 |
361 |
362 |
363 |
364 |
365 | 基础水平:差
366 |
367 |
368 | 问题描述:学科基础知识概念模糊,解题困难
369 |
370 |
371 | 解决方案:全面复习基础知识,利用记忆曲线,采用三 步循环式学习方法,做到“日清,周结、月考”,帮助 孩子夯实基础。
372 |
373 |
374 |
377 |
378 |
379 |
380 |
381 |
382 |
383 |
384 |
385 |
386 |
387 |
388 |
389 |
390 |
391 | 基础水平:差
392 |
393 |
394 | 问题描述:学科基础知识概念模糊,解题困难
395 |
396 |
397 | 解决方案:全面复习基础知识,利用记忆曲线,采用三 步循环式学习方法,做到“日清,周结、月考”,帮助 孩子夯实基础。
398 |
399 |
400 |
403 |
404 |
405 |
406 |
407 |
408 |
409 |
410 |
411 |
412 |
413 |
414 |
415 |
416 |
417 | 基础水平:差
418 |
419 |
420 | 问题描述:学科基础知识概念模糊,解题困难
421 |
422 |
423 | 解决方案:全面复习基础知识,利用记忆曲线,采用三 步循环式学习方法,做到“日清,周结、月考”,帮助 孩子夯实基础。
424 |
425 |
426 |
429 |
430 |
431 |
432 |
433 |
434 |
435 |
436 |
437 |
438 |
439 |
免费预约一对一课程
440 |
455 |
456 |
457 |
458 |
459 |
460 |
461 |
462 |
463 |
第三代智能学习系统
464 |
为学员、老师双重赋能
465 |
466 |
467 | -
468 |
469 | 历时4 年
470 |
471 | 耗资过亿自主研发
472 |
473 | -
474 |
475 | AI智能
476 |
477 | 在线教育首家应用
478 |
479 | -
480 |
481 | 集成大数据
482 |
483 | 打造透明高效课堂
484 |
485 |
486 |
490 |
491 |
492 |
493 |
494 |
495 |
496 |
497 |
海风承诺
498 |
为每一位学员提供可靠的合同保障
499 |
500 |
501 |
502 |

503 |
504 |
505 |
506 |
507 |

508 |
509 |
510 |
新学员保障
511 |
新学员首月上课不满意,退全款。
512 |
513 |
514 |
515 |
516 |

517 |
518 |
519 |
退费保障
520 |
课程不满意,随时退余款。
521 |
522 |
523 |
524 |
525 |

526 |
527 |
528 |
师资承诺
529 |
教学不满意,随时换老师。
530 |
531 |
532 |
533 |
534 |

535 |
536 |
537 |
服务保障
538 |
每个学员配专属班主任、助教,全程跟进学习情况。
539 |
540 |
541 |
542 |
545 |
546 |
547 |
548 |
549 |
550 |
551 |
552 |
553 |
554 |
试听流程
555 |
556 |
557 |
558 |
559 |

560 |
561 |
预约试听课
562 |
注册后我们会尽快与您联系
563 |
564 |
565 |
566 |
567 |

568 |
569 |
为您安排预约
570 |
您的专属课程顾问会及时为您的孩子
571 |
安排学科诊断课,以及1对1试听课
572 |
573 |
574 |
575 |
576 |

577 |
578 |
进入智能学习系统上课
579 |
开始智能高效的1对1课程
580 |
581 |
582 |
583 |
586 |
587 |
588 |
589 |
590 |
591 |
592 |
593 |
594 |
我心中的海风
595 |
186589名学员遍布全国34个省市(包含港、澳、台)
596 |
597 |
598 |
599 |
老师专业
600 |
7185赞 赞同
601 |
602 |
603 |
大品牌
604 |
8964赞 赞同
605 |
606 |
607 |
性价比高
608 |
6512赞 赞同
609 |
610 |
611 |
学习系统好用
612 |
5672赞 赞同
613 |
614 |
615 |
效果好
616 |
15907赞 赞同
617 |
618 |
619 |
上课轻松方便
620 |
5427赞 赞同
621 |
622 |
623 |
服务好
624 |
3797 赞 赞同
625 |
626 |
629 |
630 |
631 |
632 |
633 |
634 |
635 |
636 |
637 |
荣誉源于实力
638 |
639 |
640 |
641 |
642 |
643 |
644 |
645 |
646 |
647 |
648 |
649 |
650 |
651 |
652 |
653 |
654 |
权威媒体报道
655 |
656 |
657 |
658 |
659 |
660 |
661 |
662 |
663 |
664 |
665 |
学习宝典
666 |
667 |
693 |
694 |
695 |
696 |
697 |
698 |
699 |
755 |
756 |
757 |
780 |
781 |
782 |
783 |
784 |
785 |
801 |
--------------------------------------------------------------------------------