关于12306谷歌浏览器,搜狗12306专版浏览器很多人还不知道,今天小铁来为大家解答以上问题,现在让我们一起来看看吧!
近日,春运抢票12306网站的抢票软件成为全民关注的焦点。有传言称,铁道部要求工信部要求各大浏览器厂商停止开发12306抢票工具。搜狗浏览器官方表示,截至目前,搜狗公司从未收到任何相关部门的“叫停”通知,也未被“约谈”。搜狗12306专版浏览器和搜狗浏览器12306抢票插件一直正常服务,未受影响。
软件名称: 搜狗浏览器12306专版 软件版本: 官方版 软件大小: 29.66MB 软件授权: 免费 适用平台: Win9X Win2000 WinXP Win2003 Vista Win7 下载地址: //dl.pconline.com.cn/download/172234.html
搜狗12306专版浏览器独创“定时抢票”功能,可以在放票的那一刻,也就是放票量最大的时候,大大提高用户订票的成功率,可以让12306服务器“减负”,安全可靠。为什么这么说?接下来请看搜狗12306专版浏览器“定时抢票”功能的详细技术分析报告。
搜狗12306专版浏览器“常规抢票”功能的技术分析
在看一般人看不懂的代码分析之前,我们先来简单了解一下搜狗12306专版浏览器常规购票功能的三大优势。只有知道优点,才能知道代码的意义。
1.优点:对于用户来说,“预定出票”功能可以在出票的瞬间开始出票。此时票量最大时,相比“自动出票”功能,可以大大提高订票成功率;
2:对于12306网站来说,“定时抢票”功能可以减轻12306网站的负荷,这是以礼相待的方式。
3.优点:对于其他抢票浏览器来说,“定时抢票”功能是他们目前没有的功能。搜狗在充分考虑“如何大幅提高用户订票成功率”和“减轻12306网站负荷”后推出了这一功能。
代码分析:
通过校准时间、防踢出、即时出票三个步骤,用户可以在每次出票的瞬间订票。相对于刷新余票和退票,放出来的票数量最多,所以用户订票成功的概率也最大。
1.校准时间:
用户机器上的本地时间可能不准确,所以每当用户登录时,他都会请求服务器时间,这是标准。
(逻辑:当加载页面时,向远程服务器发送获取标准服务器时间的请求。请求地址为:3358 www.sogou.com/websearch/features/standardtimeadjust.jsp? T=' date . now(),地址末尾加盖了时间戳,保证请求不会受到浏览器缓存策略的影响,每一个请求都是一个全新的请求,可以获得最新的标准时间,当标准时间获得后,会保存下来供后续校准时间使用。)
照片:搜狗12306专版浏览器会在每次预定抢票前校准时间。
代码:
(函数(w,d){
varremotetime=function(){//获取标准时间(由jsonp获取)
var script=d . createelement(' script ');
script . src=' http://www . sogou.com/web search/features/standardtimeadjust . JSP?t=' date . now();
d.body.appendChild(脚本);
};
var time=function(timestamp){//获取标准时间后,通知页面并保存标准时间。
match port . postmessage({ command : ' ready ',remote time : timestamp });
};
标准时间=标准
var matchPort;
sogouExplorer.extension.onConnect.addListener(function(port){ //当12306登录页面或者查询页面载入时,发起查询标准时间的请求
if(port.name === 'remoteTime'){
matchPort = port;
port.onMessage.addListener(function(msg){
if(msg.command === 'get'){
getRemoteTime();
}
});
}
});
}(window, document));
……
var now = new Date(Date.now() - utility.diffTime), //根据当前本地时间和时间差计算出来的当前服务器时间
hour = now.getHours(),
min = now.getMinutes(),
sec = now.getSeconds();
padding_time = diff(countdown_time, { //计算当前服务器时间和最终时间的差距,格式为*小时*分*秒
hour: hour,
min: min,
sec: sec
});
};
2.防踢出
当用户端浏览器因长时间未操作时,有可能被12306网站认为对话已结束,从而会将用户踢出。这将严重耽误用户购票的时间,为了防止这种情况的发生,同时减轻12306网站的负担,搜狗“12306专版浏览器”会定时对12306网站说:“Hi,我还在线,请不要将我踢出。”
(逻辑:定时发送空请求,请求地址为https://dynamic.12306.cn/otsweb/order/querySingleAction.do?method=init&t=' + Date.now(),同样加上了时间戳防止因浏览器缓存策略而不能将请求真正发送给12306服务器。)
代码(位于12306-webkit.js中):
var intervalRequest = function(){
var requestUrl = 'https://dynamic.12306.cn/otsweb/order/querySingleAction.do?method=init&t=' + Date.now();
var img = new Image;
img.src = requestUrl; //发起一个空请求
setTimeout(intervalRequest, interval);
};
intervalRequest();
3.放票瞬间抢票
当放票的一瞬间,开始抢票,因为与服务器时间已同步,因此搜狗会在第一时间发送请求,对于以秒计算的抢票过程来说,无疑拥有更高的几率订票成功。
“定时抢票”功能与其他浏览器的“自动刷票”功能相比,示例如下:
13:00:00秒开始放票,其他抢票浏览器如果已经在12:59:59秒刷新过页面,那他们的下次刷新时间为13:00:05(遵守12306网站6秒/次的刷新频率) ,但搜狗“定时抢票”功能却可以在13:00:00准时开始抢票,宝贵的5秒钟,可以显著提升用户订票的成功率。
(逻辑:当倒计时终了的时候就会将之前保存起来的出发地、目的地的信息回填到输入框中,随后触发左侧“开始刷票”按钮的功能,不断尝试,直至刷到有票为止。)
代码:
.addEndHandler(function(){ //倒计时时间达到,开始刷票
first_ticket_btn_status = 'stopped';
first_ticket_pingback = true;
$('#first-ticket-btn').removeClass('running').addClass('stopped');
countdown = null;
hideFirstTicketInfo();
$tickettime_options.attr('disabled', false);
$tickettime_options.val('').change();
$toolbar_startdate.attr('disabled', false);
//将之前保存的相关信息以程序的方式填入进去,准备刷票
$('#fromStationText').val(fromStationText4FirstTicket);
$('#fromStation').val(fromStation4FirstTicket);
$('#toStationText').val(toStationText4FirstTicket);
$('#toStation').val(toStation4FirstTicket);
$('#startdatepicker').val(startdate4FirstTicket);
if(auto_refresh_btn_status === 'stopped'){
$('#auto-refresh-btn').click(); //触发刷票功能
}
})
.start();
总结
对于这个全球瞬间点击量第一,而却没有淘宝样强大承载能力的12306网站,单纯靠原始的人工刷票方法,就算给你一天时间也不一定刷出票来。
搜狗对抢票技术做了大量优化,独家推出“定时抢票”功能,保证用户在放票的第一时间开始抢票,与一般抢票插件的“自动刷票”功能相比,其优势是抢票成功率大大提升,并且对12306服务器的负载大大降低,做到了两全其美。搜狗将持续做好12306专版浏览器的技术维护,为更多归
本文讲解到此结束,希望对你有所帮助。