»

替换网站登录时欢迎信息中的document.write()函数

    WordPress网站建设  
Wp Super Cachewindows主机伪静态浏览器wordpress建站CDN的问题网络安全HTTP标头重定向SEO前端IIScookiesApache服务器变量百度云加速腾讯云加速七牛CDN网站优化插件缓存htaccessweb.config

有朋友可能看过我写的两篇文章:第一篇是《利用Write()和userAgent解决自适应网站CDN后不能识别移动端的问题》,想解决前端判断移动端和PC端、然后投放广告代码的问题。其实这样做并没考虑SEO优化的问题。

这样做之后,发现网页打开总是卡顿,从控制台发现了问题:

A Parser-blocking, cross site (i.e. different eTLD+1) script, http://pos.baidu.com/xxxxxxx, is invoked via document.write. The network request for this script MAY be blocked by the browser in this or a future page load due to poor network connectivity. If blocked in this page load, it will be confirmed in a subsequent console message.See https://www.chromestatus.com/feature/5718547946799104 for more details.

 

加载网页时卡顿的原因是这样的:

在 2G、3G 或速度比较慢的 wifi 环境中,使用 document.write() 动态加载资源会让页面的展现慢 10 秒以上。每当解析器遇到脚本时,它必须停止并执行它,然后才能继续解析 HTML。如果脚本动态地注入另一个脚本,解析器将被迫等待更长时间才能下载资源,这可能会导致一个或多个网络往返并延迟首次渲染页面的时间,导致页面无法加载或花费的时间长于用户放弃。通过第三方脚本插入的 document.write() 页面的速度通常比 2G 的其他页面载入速度慢两倍!

更多内容可以参考我这篇文章:《大家尽量不要在网页中使用document.write()》。

因此,后来我把网页广告代码中的document.write()都撤掉了。

本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利

但是,这两天发现控制台还在警告,一看竟然是网页开头那个显示时间的欢迎语。

 

hello

 

本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利

 

里面仍有两处涉及到了document.write() 函数。

代码如下:

  1. <script type="text/javascript">  
  2.     today = new Date();  
  3.     var day;  
  4.     var date;  
  5.     var hello;  
  6.     hour = new Date().getHours();  
  7.     if (hour < 6) {  
  8.         hello = ' 凌晨好! ';  
  9.     } else if (hour < 9) {  
  10.         hello = ' 早上好!';  
  11.     } else if (hour < 12) {  
  12.         hello = ' 上午好!';  
  13.     } else if (hour < 14) {  
  14.         hello = ' 中午好! ';  
  15.     } else if (hour < 17) {  
  16.         hello = ' 下午好! ';  
  17.     } else if (hour < 19) {  
  18.         hello = ' 傍晚好!';  
  19.     } else if (hour < 22) {  
  20.         hello = ' 晚上好! ';  
  21.     } else {  
  22.         hello = '夜深了! ';  
  23.     }  
  24.   
  25.     function GetCookie(sName) {  
  26.         var arr = document.cookie.match(new RegExp("(^| )" + sName + "=([^;]*)(;|$)"));  
  27.         if (arr != null) {  
  28.             return unescape(arr[2])  
  29.         };  
  30.   
  31.         return null;  
  32.     }  
  33.   
  34.     var Guest_Name = decodeURIComponent(GetCookie('author'));  
  35.     var webUrl = webUrl;  
  36.     if (Guest_Name != "null") {  
  37.         hello = Guest_Name + ' , ' + hello + ' 欢迎回来。';  
  38.     }  
  39.   
  40.     document.write(' ' + hello);  
  41. </script>  
  42.   
  43.   
  44. <span id="localtime">今天是:   
  45. <script type="text/javascript">  
  46.     today = new Date();  
  47.     var tdate, tday, x, year;  
  48.     var x = new Array("星期日""星期一""星期二""星期三""星期四""星期五""星期六");  
  49.     var MSIE = navigator.userAgent.indexOf("MSIE");  
  50.     if (MSIE != -1) {  
  51.         year = (today.getFullYear());  
  52.     } else {  
  53.         year = (today.getYear() + 1900);  
  54.     }  
  55.     tdate = year + "年" + (today.getMonth() + 1) + "月" + today.getDate() + "日" + " " + x[today.getDay()];  
  56.     document.write(tdate);  
  57. </script>  
  58. </span>  

 

这两处的 document.write()函数可以用其他代码和函数替换掉,如下所示:

本文禁止全文转载。任何形式转载请联系作者(时光在路上 www.timezls.com) Copyright © 2023. All Rights Reserved

  1. <span id="time">  
  2. <script type="text/javascript">  
  3.   
  4. / * 设置特定时间段的问候语 * /  
  5. today = new Date();  
  6.     var day;  
  7.     var date;  
  8.     var hello;  
  9.     hour = new Date().getHours();  
  10.     if (hour < 6) {  
  11.         hello = ' 凌晨好! ';  
  12.     } else if (hour < 9) {  
  13.         hello = ' 早上好!';  
  14.     } else if (hour < 12) {  
  15.         hello = ' 上午好!';  
  16.     } else if (hour < 14) {  
  17.         hello = ' 中午好! ';  
  18.     } else if (hour < 17) {  
  19.         hello = ' 下午好! ';  
  20.     } else if (hour < 19) {  
  21.         hello = ' 傍晚好!';  
  22.     } else if (hour < 22) {  
  23.         hello = ' 晚上好! ';  
  24.     } else {  
  25.         hello = '夜深了! ';  
  26.     }  
  27.   
  28. / * 获取登录者的cookie * /  
  29. function GetCookie(sName) {   
  30.     var arr = document.cookie.match(new RegExp("(^| )"+sName+"=([^;]*)(;|$)"));   
  31.     if(arr !=null){return unescape(arr[2])}; return null;}  
  32.     var Guest_Name = decodeURIComponent(GetCookie('author'));  
  33.     var webUrl = webUrl;  
  34.     if (Guest_Name != "null" ){   
  35.       hello = Guest_Name+' , '+hello+' 欢迎回来。';  
  36.     }  
  37.   
  38. / * 获取时间信息 * /  
  39. today=new Date();   
  40. var tdate,tday, x,year; var x = new Array("星期日""星期一""星期二""星期三""星期四""星期五","星期六");  
  41. var MSIE=navigator.userAgent.indexOf("MSIE");  
  42. if(MSIE != -1){   
  43.     year =(today.getFullYear());  
  44.     } else {   
  45.         year = (today.getYear()+1900);  
  46.         }   
  47. tdate= year+ "年" + (today.getMonth() + 1 ) + "月" + today.getDate() + "日" + " " + x[today.getDay()];  
  48.   
  49. / * 输出信息 * /  
  50. document.getElementById('time').innerHTML=hello + '今天是:' + tdate;  
  51.   
  52. </script>    
  53. </span>  

 

替换之后,问题就解决了。

本文禁止无授权转载 - 时光在路上 www.timezls.com 保留所有权利

代码放在了网盘里:链接: pan.baidu.com/s/1o8LvecU  密码: qi3j 

时光在路上扫码阅读、分享
  • 版权声明:该文章由 时光在路上 发表,共 4010字。除非特别标注来源,否则为原创。详见《版权声明》部分。
  • 转载请注明:文章标题和文章链接 - 时光在路上 - 也可直接“复制本文链接” 或 使用右边二维码分享本文 →