From 491269af6708de293fe06329a8b54d82196b0d7f Mon Sep 17 00:00:00 2001 From: Espoir-L <413308430@qq.com> Date: Mon, 15 Oct 2018 15:58:28 +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 | 95 ++++++++++++++++++++---------------- 1 file changed, 53 insertions(+), 42 deletions(-) diff --git a/src/mip-custom/mip-custom.js b/src/mip-custom/mip-custom.js index f7623b35f..3ae5d9c8a 100644 --- a/src/mip-custom/mip-custom.js +++ b/src/mip-custom/mip-custom.js @@ -68,13 +68,15 @@ define(function () { var currentWindow = getCurrentWindow(); var isRootPage = currentWindow.MIP.viewer.page.isRootPage; var rootWindow = isRootPage ? window : window.parent; - if (rootWindow.MIP.mipshellXiaoshuo != null) { - // 监听小说shell播放的广告请求的事件 - window.addEventListener('showAdvertising', handler); - } - else { - this.initElement(dom) - } + window.addEventListener('mipShellReady', function () { + if (window.MIP.mipshellXiaoshuo != null) { + // 监听小说shell播放的广告请求的事件 + window.addEventListener('showAdvertising', handler); + } + else { + this.initElement(dom) + } + }); } else { this.initElement(dom) @@ -222,6 +224,15 @@ 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); }; /** @@ -326,43 +337,10 @@ define(function () { me.element.remove(); return; } - + // 模板的前端渲染 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(); @@ -373,6 +351,39 @@ 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); + } + }; + /** * 缓存异步数据 *