快速业务通道

用Flash来作浏览历史功能

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-07

很多网站都有“浏览历史”这个功能,通常都是显示在页面的一侧,特别是一些购物网站,这个功能会让用户使用网站的体验好一些;例如当当网或淘宝网都有这样的功能! 用Flash来作浏览历史功能 这样的功能通常的实现方式都是把记录记在客户端的Cookei中,而记在cookie中又多分为两种情况:
1、记网址和标题,这个功能与服务器端无关,直接在客户端生成和显示;
2、记产品的一个key,然后传给服务器来生成这个功能;

但无论是哪种,都是在cookie中存内容;

在YUI的网站优化的一个建议中,就建议减小Cookie体积,为什么要减少?因为coockie是通过HTTP文件头来往于服务器和浏览器之间的,Cookie的大小,会决定在这之间传输内容的大少以及时间。所以要尽可能让coockie小。

那 么,如果不在cookie中存放一些内容,浏览历史的的这个功能应该怎么作?存在服务器端吗,太伤了!前几天我突然想到用Flash来实现这个功能,因为 FLASH是可以存放一些内容到特定的目录的,而且与cookie无关,更特别的是他可以存放多种数据类型,只要是FLASH支持的就可以。

今天闲下无事,在家里实现一下这个功能!

先说一下原理:

网页中有JavaScript代码;
网页中有一个flash文件;

Javascript把标题和链接传给flash,flash把他存在客户端,然后再把已经有的历史返回给javascript,javascript再把返回的内容显示出来,这就是历史记录功能了! 用Flash来作浏览历史功能 代码部分没有好好想,想到哪就写到哪了,没有优化!

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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号