用Flash来作浏览历史功能
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-07
很多网站都有“浏览历史”这个功能,通常都是显示在页面的一侧,特别是一些购物网站,这个功能会让用户使用网站的体验好一些;例如当当网或淘宝网都有这样的功能! 这样的功能通常的实现方式都是把记录记在客户端的Cookei中,而记在cookie中又多分为两种情况: 1、记网址和标题,这个功能与服务器端无关,直接在客户端生成和显示; 2、记产品的一个key,然后传给服务器来生成这个功能; 但无论是哪种,都是在cookie中存内容; 在YUI的网站优化的一个建议中,就建议减小Cookie体积,为什么要减少?因为coockie是通过HTTP文件头来往于服务器和浏览器之间的,Cookie的大小,会决定在这之间传输内容的大少以及时间。所以要尽可能让coockie小。 那 么,如果不在cookie中存放一些内容,浏览历史的的这个功能应该怎么作?存在服务器端吗,太伤了!前几天我突然想到用Flash来实现这个功能,因为 FLASH是可以存放一些内容到特定的目录的,而且与cookie无关,更特别的是他可以存放多种数据类型,只要是FLASH支持的就可以。 今天闲下无事,在家里实现一下这个功能! 先说一下原理: 网页中有JavaScript代码; 网页中有一个flash文件; Javascript把标题和链接传给flash,flash把他存在客户端,然后再把已经有的历史返回给javascript,javascript再把返回的内容显示出来,这就是历史记录功能了! 代码部分没有好好想,想到哪就写到哪了,没有优化! JavaScript部分的代码: 程序代码 //在页面的最后加一个FLASH文件 functionsetLishi(){ var_title=document.getElementsByTagName(''title'')[0].innerHTML; var_link=location.pathname; var_body=document.getElementsByTagName(''body'')[0]; var_div=document.createElement(''div''); varhtml=''<objectclassid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"''; html+=''codebase="http://download.Macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="1"height="1">''; html+=''<paramname="movie"value="flash.swf?t=''+encodeURIComponent(_title)+''&l=''+encodeURIComponent(_link)+''"/>''; html+=''<paramname="quality"value="high"/>''; html+=''<embedsrc="flash.swf?t=''+encodeURIComponent(_title)+''&l=''+encodeURIComponent(_link)+''"quality="high"pluginspage="http://www.macromedia.com/go/getflashplayer"''; html+=''type="application/x-shockwave-flash"width="1"height="1">''; html+=''</embed>''; html+=''</object>''; _div.innerHTML=html; _body.appendChild(_div); } //把FLASH传回的内容显示出来 functionshowLishi(ll){ varlinks=ll.split(''_zishu_''); varhtml=''''; for(varl=0;l<links.length;l++){ html+=''<li>''+links[l]+''</li>''; } document.getElementById(''lishi'').innerHTML=html; return; } setLishi(); FLASH部分的代码: 程序代码 stop(); vartt=t; varcookieName=''lishi''; varlishi:SharedObject=SharedObject.getLocal(_root.cookieName,"/"); functiongetLishi(){ return(lishi.data[_root.cookieName]); } functionsetLishi(lishiCookie){ varallLishi=newArray(); allLishi[0]=tt; if(lishiCookie.length>0){ for(varl=0;l<lishiCookie.length;l++){ allLishi[l+1]=lishiCookie[l]; if(l==3)break; } } lishi.data[_root.cookieName]=allLis |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于用Flash来作浏览历史功能的所有评论