欢迎来到福编程网,本站提供各种互联网专业知识!

OfflineSave离线保存代码再次发布使用说明

发布时间:2007-05-23 作者: 来源:转载
必知:所有需要处理的HTML元素必须具有ID属性,组件只会探测元素的ID属性1.在上加入.userData{behavior:url(#default#userdata);}2.在下加入3.在上加入4.为form标签加入扩展属性OfflineSave例:ToolsBarStyle为cssclass属性,容器为div,包含select,input
必知:所有需要处理的HTML元素必须具有ID属性,组件只会探测元素的ID属性

1.在上加入

2.在下加入

3.在上加入

4.为form标签加入扩展属性OfflineSave
例:
ToolsBarStyle为cssclass属性,容器为div,包含select,input,button

注意:
情况1:




在这种情况下,组件可以自动探测服务器存活状态,如服务器无法连接时,会提示本地保存,
并且docheck函数也可以正常工作

情况2:




在这种情况下,组件无法截获提交事件,也无法自动探测服务器存活状态

建议:检测表单内数据时,在form标签onsubmit事件内写入检测函数

联系我:qq:13872888注明:blueidea
复制代码 代码如下:
varos_Obj,os_usd;

varos_dg=document.getElementById;
varos_ButtonCss="style="cursor:hand;height:20px;padding:0px3px;border:1pxsolid#67C1E4;"";
varos_SelectCss="style="font-size:12px;"";
varos_SaveSuccessStr="离线数据保存成功!";
varos_SaveProStr="请输入离线保存的名称:(如为空则用当前时间表示)";
varos_LoadProStr="确认要载入离线数据吗?";
varos_DelProStr="确认要删除离线数据吗?";
varos_DelSuccessStr="离线数据删除成功!";
varos_oUD="OfflineSave_oPersistInput";
varos_DefaultFiledLength=10;//DefaultFiledlength
varos_str="OfflineSave_";
varos_CannotSaveStr="保存数据时出现错误![离线保存空间仅限640K]nn有可能已超出离线保存容量!请删除部分数据后再保存!";
varos_expires=(newDate(2010,1,1)).toUTCString();


InitOfflineSave();
functionInitOfflineSave(){
for(vari=0;iif(document.forms[i].OfflineSave!=null){
os_usd=os_dg("OfflineSave_Area");
vartbs=document.forms[i].ToolsBarStyle==null?"":document.forms[i].ToolsBarStyle;
os_CreateToolBar(document.forms[i],tbs);
os_GetOfflineSaveList(document.forms[i].id);
varcmd=document.forms[i].onsubmit==null?"":document.forms[i].onsubmit;
if(cmd!=""){
cmd=document.forms[i].onsubmit+"";
cmd=cmd.split("{")[1].split("}")[0].replace("n","");
}
cmd=escape(cmd);
eval("document.forms[i].onsubmit=function(){returnos_CheckSubmit('"+document.forms[i].id+"','"+cmd+"');}");
break;
}
}
}

functionos_CreateToolBar(obj,boolbarstyle){
varhc;
hc="<selectid='os_"+obj.id+"_Select'"+os_SelectCss+">";
hc+="";
hc+="";
hc+="";
hc+="";
hc+="";
hc+="";
hc+="

";
obj.innerHTML=hc+obj.innerHTML;
if(boolbarstyle==""){
os_dg("os_"+obj.id+"_div").style.textAlign="left";
os_dg("os_"+obj.id+"_div").style.textvAlign="middle";
os_dg("os_"+obj.id+"_div").style.paddingTop="3";
os_dg("os_"+obj.id+"_div").style.height="30";
os_dg("os_"+obj.id+"_div").style.border="1solidblack";
os_dg("os_"+obj.id+"_div").style.paddingLeft="5";
}
else
os_dg("os_"+obj.id+"_div").className=boolbarstyle;
}

functionos_CheckSubmit(id,subfunc){
if(!os_CanSubmit(os_dg(id).action)){
if(confirm("离线保存提示:nn您要提交的服务器连接可能出现问题,是否进行离线保存?")){
os_SaveData(id);
}
returnfalse;
}
eval(unescape(subfunc));
}

functionos_LoadData(id){
varv=os_dg("os_"+id+"_Select").selectedIndex;
if(v==0)return;

varud=os_str+id+os_dg(id).length;
if(confirm(os_LoadProStr+"nn记录名称:"+os_getUserData(ud,"f_"+v+"_os_savename")+"n保存时间:"+os_getUserData(ud,"f_"+v+"_os_savedate"))){
varlcount=os_dg(id).length;
for(vari=0;iif(os_dg(id).item(i).type!="submit"&&os_dg(id).item(i).type!="reset"&&os_dg(id).item(i).type!="button"&&os_dg(id).item(i).id!="os_"+id+"_Select"){
if(os_dg(id).item(i).type=="radio"||os_dg(id).item(i).type=="checkbox")
os_dg(os_dg(id).item(i).id).checked=os_getUserData(ud,"f_"+v+"_"+os_dg(id).item(i).id)=="1"?true:false;
else{
if(os_dg(id).item(i).type=="select-multiple"){
varsm=os_getUserData(ud,"f_"+v+"_"+os_dg(id).item(i).id).split(",");
varx;
for(x=0;xos_dg(id).item(i).options[x].selected=false;
for(x=0;xos_dg(id).item(i).options[parseInt(sm[x])].selected=true;
}
else{
if(os_dg(id).item(i).type=="select-one")
os_dg(os_dg(id).item(i).id).selectedIndex=parseInt(os_getUserData(ud,"f_"+v+"_"+os_dg(id).item(i).id));
else{
//alert(os_getUserData(ud,"f_"+v+"_"+os_dg(id).item(i).id));
os_dg(os_dg(id).item(i).id).value=unescape(os_getUserData(ud,"f_"+v+"_"+os_dg(id).item(i).id));
}
}
}
}
}
}
}

functionos_DelData(id){
varv=os_dg("os_"+id+"_Select").selectedIndex;
if(v==0)return;

varud=os_str+id+os_dg(id).length;
if(confirm(os_DelProStr+"nn记录名称:"+os_getUserData(ud,"f_"+v+"_os_savename")+"n保存时间:"+os_getUserData(ud,"f_"+v+"_os_savedate"))){
vari=0;
varud=os_str+id+os_dg(id).length;
varlcount=parseInt(os_getUserData(ud,"count"));

varvcount=os_dg(id).length;
for(i=0;iif(os_dg(id).item(i).type!="button"&&os_dg(id).item(i).id!="os_"+id+"_Select")
if(vos_putUserData(ud,"f_"+v+"_"+os_dg(id).item(i).id,os_getUserData(ud,"f_"+lcount+"_"+os_dg(id).item(i).id));
os_remUserData(ud,"f_"+lcount+"_"+os_dg(id).item(i).id);
}
if(vos_putUserData(ud,"f_"+v+"_os_savename",os_getUserData(ud,"f_"+lcount+"_os_savename"));
os_putUserData(ud,"f_"+v+"_os_savedate",os_getUserData(ud,"f_"+lcount+"_os_savedate"));
}
os_remUserData(ud,"f_"+lcount+"_os_savename");
os_remUserData(ud,"f_"+lcount+"_os_savedate");

eval("os_putUserData(ud,"count",""+(lcount-1)+"");");

vars=os_dg("os_"+id+"_Select");
if(lcount==1){
os_delUserData(ud);
while(s.length>0)s.remove(0);
s.add(newOption("无数据",0));
}
else{
s.item(0).text="共有"+(lcount-1)+"个记录";
if(vs.item(0).value=0;
s.item(v).text=s.item(s.length-1).text;
}
s.remove(s.length-1);
}
alert(os_DelSuccessStr);
}
}

functionos_SaveData(id){
if(os_dg(id).length<=0){
alert("[OfflineSave]Error:nn"+id+"noElement!(input,radio,checkbox,select)");
return;
}

varsd=newDate();
varsn=prompt(os_SaveProStr,sd.toLocaleString()+":MyData");
varud=os_str+id+os_dg(id).length;
varlcount=os_getUserData(ud,"count");
lcount=lcount==""||lcount==null?1:parseInt(lcount)+1;
if(os_dg(id).length*10*2*lcount>64000){
alert(os_CannotSaveStr);
return;
}
try{

sn=sn==""?sd.toLocaleString():sn;

varvcount=os_dg(id).length;
for(vari=0;iif(os_dg(id).item(i).type!="submit"&&os_dg(id).item(i).type!="reset"&&os_dg(id).item(i).type!="button"&&os_dg(id).item(i).id!="os_"+id+"_Select"){
if(os_dg(id).item(i).type=="radio"||os_dg(id).item(i).type=="checkbox"){
eval("os_putUserData(""+ud+"","f_"+lcount+"_"+os_dg(id).item(i).id+"",""+(os_dg(id).item(i).checked?"1":"0")+"");");
}
else{
if(os_dg(id).item(i).type=="select-multiple"){
varmc="";
for(varx=0;xif(os_dg(id).item(i).options[x].selected)mc+=x+",";
}
eval("os_putUserData(""+ud+"","f_"+lcount+"_"+os_dg(id).item(i).id+"",""+mc+"");");
}
else{
if(os_dg(id).item(i).type=="select-one")
eval("os_putUserData(""+ud+"","f_"+lcount+"_"+os_dg(id).item(i).id+"",""+os_dg(id).item(i).selectedIndex+"");");
else
eval("os_putUserData(""+ud+"","f_"+lcount+"_"+os_dg(id).item(i).id+"",""+escape(os_dg(id).item(i).value)+"");");
}
}
}
}
eval("os_putUserData(""+ud+"","f_"+lcount+"_os_savename",""+sn+"");");
eval("os_putUserData(""+ud+"","f_"+lcount+"_os_savedate",""+sd.toLocaleString()+"");");
eval("os_putUserData(ud,"count",""+lcount+"");");//savelistcount
vars=os_dg("os_"+id+"_Select");
s.item(0).text="共有"+lcount+"个记录";
s.item(0).value=0;
s.add(newOption(sn,lcount));
alert(os_SaveSuccessStr);
}
catch(e){
alert(os_CannotSaveStr+"nn错误原因:"+e);
}
}

functionos_GetOfflineSaveList(id){
varud=os_str+id+os_dg(id).length;
vars=os_dg("os_"+id+"_Select");
varlcount=os_getUserData(ud,"count");
varsv="";
while(s.length>0)s.remove(0);
lcount=lcount==""||lcount==null?0:parseInt(lcount);
if(lcount<=0)
s.add(newOption("无数据","0"));
else{
s.add(newOption("共有"+lcount+"个记录","0"));
for(vari=1;i<=lcount;i++){
eval("sv=os_getUserData(ud,"f_"+i+"_os_savename");");
s.add(newOption(sv,i));
}
}
}

functionos_putUserData(sUDName,sName,sVal){
os_usd.load(sUDName);
os_usd.expires=os_expires;
os_usd.setAttribute(sName,sVal);
os_usd.save(sUDName);
return;
}

functionos_remUserData(sUDName,sName){
os_usd.load(sUDName);
os_usd.removeAttribute(sName);
os_usd.save(sUDName);
return;
}

functionos_getUserData(sUDName,sName){
os_usd.load(sUDName);
returnos_usd.getAttribute(sName);
}

functionos_delUserData(sUDName){
varoTimeNow=newDate();//StartTime
oTimeNow.setMinutes(oTimeNow.getMinutes()+1);
varsExpirationDate=oTimeNow.toUTCString();
os_usd.load(sUDName);
os_usd.expires=sExpirationDate;
os_usd.save(sUDName);
return;
}

functionos_CanSubmit(url){
varxmlHTTP=window.ActiveXObject?newActiveXObject("Microsoft.XMLHTTP"):newXMLHttpRequest();
xmlHTTP.open("get",url,false);
xmlHTTP.send("");
returnxmlHTTP.status=="200";
}

OfflineSave.htm
复制代码 代码如下:


离线保存








Ajax演示程序(J2EE)




服务端:JDK1.4TomCAT4.1Hibernate3MSSQLServer2000(SP4)DWR1.0

客户端:JavaScript(CallBack)VML


编写人:富深协通常州研发中心姜泉






离线数据保存(仅限IE浏览器5.0版本以上)





名称

公司全称

客户代码


分类
中国人



性别
增加日期
















相关推荐