From 6bcf2de4cd6332e0b1f43d9648bf681a14ffcae5 Mon Sep 17 00:00:00 2001 From: Espoir-L <413308430@qq.com> Date: Mon, 15 Oct 2018 16:47:33 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=9A=E5=88=B6=E5=8C=96=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E4=BF=AE=E6=94=B9=E4=B8=8E=E5=B0=8F=E8=AF=B4=E9=98=85?= =?UTF-8?q?=E8=AF=BB=E5=99=A8=E7=9A=84=E5=8F=8C=E5=90=91=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E7=9B=91=E5=90=AC=E7=9A=84=E6=96=B9=E6=A1=88=20#1259?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mip-custom/mip-custom.js | 78 ++++++++++++++++++++---------------- 1 file changed, 43 insertions(+), 35 deletions(-) diff --git a/src/mip-custom/mip-custom.js b/src/mip-custom/mip-custom.js index 538c79390..975265587 100644 --- a/src/mip-custom/mip-custom.js +++ b/src/mip-custom/mip-custom.js @@ -63,9 +63,11 @@ define(function () { } globalCustomElementInstance = this; dom.addPlaceholder.apply(this); + debugger // 判断是否是MIP2的环境,配合小说shell,由小说shell去控制custom的请求是否发送 if (window.MIP.version && +window.MIP.version === 2) { // 监听小说shell播放的广告请求的事件 + debugger window.addEventListener('showAdvertising', handler); // 当小说shell优先加载时——向小说shell发送custom已经ready的状态以方便后续事件的执行 var shellWindow = window.MIP.viewer.page.isRootPage ? window : window.parent; @@ -212,6 +214,14 @@ define(function () { // dom 渲染 dom.render(element, tplData, container); } + // 广告插入页面时,增加渐显效果 + var mipCustomContainers = document.querySelectorAll('[mip-custom-container]'); + for (var i = mipCustomContainers.length - 1; i >= 0; i--) { + var mipCustomContainer = mipCustomContainers[i]; + mipCustomContainer.classList.add('fadein'); + } + // 移除广告占位符号 + dom.removePlaceholder.apply(this); }; /** @@ -316,41 +326,7 @@ define(function () { } callback && callback(data.data, element); - // 广告插入页面时,增加渐显效果 - var mipCustomContainers = document.querySelectorAll('[mip-custom-container]'); - for (var i = mipCustomContainers.length - 1; i >= 0; i--) { - var mipCustomContainer = mipCustomContainers[i]; - mipCustomContainer.classList.add('fadein'); - } - - // 性能日志:按照流量 1/500 发送日志 - var random500 = Math.random() * 500; - if (random500 < 1) { - // 性能日志:emptyTime-广告未显示时间 - performance.renderEnd = new Date() - 0; // 渲染结束时间戳 - performance.emptyTime = performance.renderEnd - performance.fetchStart; // 页面空白毫秒数 - performance.frontendRender = performance.renderEnd - performance.responseEnd; - - // 前端打点时间 - var frontendData = { - duration: performance.duration, - emptyTime: performance.emptyTime, - frontendRender: performance.frontendRender - }; - // 加入后端打点时间 - var frontAndServerData; - if (data.data.responseTime) { - frontAndServerData = util.fn.extend(frontendData, data.data.responseTime); - } - else { - frontAndServerData = frontendData; - } - // 加入默认统计参数 - performanceData.params.info = JSON.stringify(util.fn.extend(performanceData.params.info, frontAndServerData, 1)); - log.sendLog(performanceData.host, performanceData.params); - } - - dom.removePlaceholder.apply(me); + me.setPerformanceLogs(performance); }, function (error) { log.sendLog(logData.host, util.fn.extend(logData.error, logData.params, errorData)); me.element.remove(); @@ -361,6 +337,38 @@ define(function () { }); }; + /** + * 性能日志:按照流量 1/500 发送日志 + * + * @param {Object} performance 性能参数 + */ + customElement.prototype.setPerformanceLogs = function (performance) { + var random500 = Math.random() * 500; + if (random500 < 1) { + // 性能日志:emptyTime-广告未显示时间 + performance.renderEnd = new Date() - 0; // 渲染结束时间戳 + performance.emptyTime = performance.renderEnd - performance.fetchStart; // 页面空白毫秒数 + performance.frontendRender = performance.renderEnd - performance.responseEnd; + // 前端打点时间 + var frontendData = { + duration: performance.duration, + emptyTime: performance.emptyTime, + frontendRender: performance.frontendRender + }; + // 加入后端打点时间 + var frontAndServerData; + if (data.data.responseTime) { + frontAndServerData = util.fn.extend(frontendData, data.data.responseTime); + } + else { + frontAndServerData = frontendData; + } + // 加入默认统计参数 + performanceData.params.info = JSON.stringify(util.fn.extend(performanceData.params.info, frontAndServerData, 1)); + log.sendLog(performanceData.host, performanceData.params); + } + }; + /** * 缓存异步数据 *