对推送代码进行简单优化

百度自动推送代码让用户每次浏览该页面的时候都会向百度提交一次。省去了站长的人工操作,能有效提升了收录效率。
代码如下

(function(){
var bp = document.createElement('script');
var curProtocol = window.location.protocol.split(':')[0];
if (curProtocol === 'https') {
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
}
else {
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
}
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(bp, s);
})();

它首先是用if函数判断了当前浏览的网址协议是经过SSL加密过的https或者是其他类型的网址,根据不同的类型分别访问了2个JS文件。之后会将访问的JS文件内容生成脚本插入到当前的url页面中,运行该脚本则会读取对应的一个非常小体积的gif图像,在这个过程中将url地址推送到百度中。
如果url为动态地址,带有许多参数,这样每次将同一页面的不同动态url提交会不太利于优化,可以用canonical标签

(function(){
var canonicalURL, curProtocol;
//Get the <link> tag
var x=document.getElementsByTagName("link");
//Find the last canonical URL
if(x.length > 0){
for (i=0;i<x.length;i++){
if(x[i].rel.toLowerCase() == 'canonical' && x[i].href){
canonicalURL=x[i].href;
}
}
}
//Get protocol
if (!canonicalURL){
curProtocol = window.location.protocol.split(':')[0];
}
else{
curProtocol = canonicalURL.split(':')[0];
}
//Get current URL if the canonical URL does not exist
if (!canonicalURL) canonicalURL = window.location.href;
//Assign script content. Replace current URL with the canonical URL
!function(){var e=/([http|https]:\/\/[a-zA-Z0-9\_\.]+\.baidu\.com)/gi,r=localcanonicalURL,t=document.referrer;if(!e.test(r)){var n=(String(curProtocol).toLowerCase() === 'https')?"https://sp0.baidu.com/9_Q4simg2RQJ8t7jm9iCKT-xh_/s.gif":"//api.share.baidu.com/s.gif";t?(n+="?r="+encodeURIComponent(document.referrer),r&&(n+="&l="+r)):r&&(n+="?l="+r);var i=new Image;i.src=n}}(window);})();

用canonical标签指定了蜘蛛唯一爬取的链接,再多的动态url也不烦恼
直接跳过js脚本访问gif路径,提升代码运行效率

时间: 2024-09-17 17:19:30

对推送代码进行简单优化的相关文章

php ios推送(代码)

本篇文章是对php ios推送进行了详细的分析介绍,需要的朋友参考下   复制代码 代码如下: <?php //php需要开启ssl(OpenSSL)支持 $apnsCert = "ck.pem";//连接到APNS时的证书许可文件,证书需格外按要求创建 $pass = "123456";//证书口令 $serverUrl = "ssl://gateway.sandbox.push.apple.com:2195";//push服务器,这里是

php ios推送(代码)_php技巧

复制代码 代码如下: <?php//php需要开启ssl(OpenSSL)支持$apnsCert    = "ck.pem";//连接到APNS时的证书许可文件,证书需格外按要求创建$pass        = "123456";//证书口令$serverUrl   = "ssl://gateway.sandbox.push.apple.com:2195";//push服务器,这里是开发测试服务器$deviceToken = "a

iOS本地推送简单实现代码_IOS

本文为大家分解介绍了iOS本地推送代码的三步骤,供大家参考,具体内容如下 第一步:创建本地推送 // 创建一个本地推送 UILocalNotification *notification = [[[UILocalNotification alloc] init] autorelease]; //设置10秒之后 NSDate *pushDate = [NSDate dateWithTimeIntervalSinceNow:10]; if (notification != nil) { // 设置推

iOS开发之(APNS)远程推送实现代码 附证书与真机调试_IOS

远程推送通知 什么是远程推送通知 顾名思义,就是从远程服务器推送给客户端的通知(需要联网)远程推送服务,又称为APNs(ApplePush Notification Services) 为什么需要远程推送通知传统获取数据的局限性只要用户关闭了app,就无法跟app的服务器沟通,无法从服务器上获得最新的数据内容远程推送通知可以解决以上问题不管用户打开还是关闭app,只要联网了,都能接收到服务器推送的远程通知远程推送通知使用须知所有的苹果设备,在联网状态下,都会与苹果的服务器建立长连接什么是长连接只

iOS客户端本地推送实现代码_IOS

本文实例为大家分享了iOS本地推送的具体代码,供大家参考,具体内容如下 首先创建全局的本地通知对象及弹出框 // 弹出本地消息 @property(nonatomic,strong)UILocalNotification *localNotification; @property(nonatomic,strong)UIAlertController *alertcontrol; 其次在代码中实现如下: - (void)application:(UIApplication *)applicatio

Java发送ios推送消息(APN)的代码示例

Java发送ios推送消息(APN)的代码示例 实际项目应用中,应该考虑使用开源项目java-apns:https://github.com/notnoop/java-apns 千万不要用一个叫JAVAPNS的项目.这个开源项目的代码非常烂,每次发送消息都重新建立socket连接. 在apple的文档中,都明确的说了会把这种行为当作dos攻击行为.性能差就更不用说了. ios手机上要安装对应的应用.该应用与.p12证书文件应该匹配. apple官方的,关于APN服务,和apn的feedback的

ios入门之消息推送详解

前言 在去年的苹果大会上,苹果带来的iOS 10 系统中将之前繁杂的推送通知统一成UserNotifications.framework 来集中管理和使用通知功能,还增加一些实用的功能--撤回单条通知.更新已展示通知.中途修改通知内容.在通知中显示多媒体资源.自定义UI等功能. 那么在ios10之前,ios的消息推送是怎么分类的呢? ios 10之前 在ios之前,iOS推送分为Local Notifications(本地推送) 和 Remote Notifications(远程推送). 本地推

Java Socket聊天室编程(一)之利用socket实现聊天之消息推送_java

相关阅读:Java Socket聊天室编程(二)之利用socket实现单聊聊天室 网上已经有很多利用socket实现聊天的例子了,但是我看过很多,多多少有一些问题存在. 这里我将实现一个比较完整的聊天例子,并解释其中的逻辑. 由于socket这一块比较大,所以我将分出几篇来写一个比较完整的socket例子. 这里我们先来实现一个最简单的,服务器与客户端通讯,实现消息推送的功能. 目的:服务器与客户端建立连接,客户端可以向服务器发送消息,服务器可以向客户端推送消息. 1,使用java建立socke

Windows Azure中使用推送通知、SMS和电子邮件的最佳做法

在十月份我们为Mobile Services交付了iOS 客户端库以后,许多人询问什么时候支持iOS推送通知.正如Scott Guthrie周三宣布的那样,Mobile Services现在支持发送iOS推送通知!通过添加一种更简单的登陆方法,我们改善了iOS Client API:现在配置用户身份认证只需要单行的http://www.aliyun.com/zixun/aggregation/79237.html">Objective-C代码. 使用此更新,现在Mobile Service