0

0

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

php中文网

php中文网

发布时间:2016-05-16 19:12:55

|

1450人浏览过

|

来源于php中文网

原创

必知:所有需要处理的HTML元素必须具有ID属性,组件只会探测元素的ID属性

1. 在上加入
  

2. 在

Thiings
Thiings

免费的拟物化图标库

下载
下加入


3. 在上加入


4. 为form标签加入扩展属性OfflineSave
例:

ToolsBarStyle为css class属性,容器为div,包含select,input,button

注意:
情况1:


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

情况2:




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

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

联系我:qq:13872888  注明:blueidea
复制代码 代码如下:

var os_Obj,os_usd;

var os_dg=document.getElementById;
var os_ButtonCss="style=\"cursor:hand;height:20px;padding:0px 3px;border:1px solid #67C1E4;\"";
var os_SelectCss="style=\"font-size:12px;\"";
var os_SaveSuccessStr="离线数据保存成功!";
var os_SaveProStr="请输入离线保存的名称:(如为空则用当前时间表示)";
var os_LoadProStr="确认要载入离线数据吗?";
var os_DelProStr="确认要删除离线数据吗?";
var os_DelSuccessStr="离线数据删除成功!";
var os_oUD="OfflineSave_oPersistInput";
var os_DefaultFiledLength=10;//Default Filed length
var os_str="OfflineSave_";
var os_CannotSaveStr="保存数据时出现错误![离线保存空间仅限640K]\n\n有可能已超出离线保存容量!请删除部分数据后再保存!";
var os_expires = (new Date(2010,1,1)).toUTCString();


InitOfflineSave();
function InitOfflineSave(){
    for(var i=0;i        if(document.forms[i].OfflineSave!=null){
            os_usd=os_dg("OfflineSave_Area");
            var tbs=document.forms[i].ToolsBarStyle==null?"":document.forms[i].ToolsBarStyle;
            os_CreateToolBar(document.forms[i],tbs);
            os_GetOfflineSaveList(document.forms[i].id);
            var cmd=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(){return os_CheckSubmit('"+document.forms[i].id+"','"+cmd+"');}");
            break;
        }
    }
}

function os_CreateToolBar(obj,boolbarstyle){
    var hc;
    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     = "1 solid black";
        os_dg("os_"+obj.id+"_div").style.paddingLeft     = "5";
    }
    else
        os_dg("os_"+obj.id+"_div").className=boolbarstyle;
}

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

function os_LoadData(id){
    var v=os_dg("os_"+id+"_Select").selectedIndex;
    if(v==0)    return;

    var ud=os_str+id+os_dg(id).length;
    if(confirm(os_LoadProStr+"\n\n记录名称:"+os_getUserData(ud,"f_"+v+"_os_savename")+"\n保存时间:"+os_getUserData(ud,"f_"+v+"_os_savedate"))){
        var lcount=os_dg(id).length;
        for(var i=0;i            if(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"){
                        var sm=os_getUserData(ud,"f_"+v+"_"+os_dg(id).item(i).id).split(",");
                        var x;
                        for(x=0;x                            os_dg(id).item(i).options[x].selected=false;
                        for(x=0;x                            os_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));
                        }
                    }
                }
            }
        }
    }
}

function os_DelData(id){
    var v=os_dg("os_"+id+"_Select").selectedIndex;
    if(v==0)    return;

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

        var vcount=os_dg(id).length;
        for(i=0;i            if(os_dg(id).item(i).type!="button"&&os_dg(id).item(i).id!="os_"+id+"_Select")
                if(v                    os_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(v            os_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)+"\");");

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

function os_SaveData(id){
    if(os_dg(id).length        alert("[OfflineSave]Error:\n\n"+id+" no Element!(input,radio,checkbox,select)");
        return;
    }

    var sd=new Date();
    var sn=prompt(os_SaveProStr,sd.toLocaleString()+":MyData");
    var ud=os_str+id+os_dg(id).length;
    var lcount=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;

    var vcount=os_dg(id).length;
    for(var i=0;i        if(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"){
                    var mc="";
                    for(var x=0;x                        if(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+"\");");//save list count
    var s=os_dg("os_"+id+"_Select");
    s.item(0).text="共有"+lcount+"个记录";
    s.item(0).value=0;
    s.add(new Option(sn,lcount));
    alert(os_SaveSuccessStr);
    }
    catch(e){
        alert(os_CannotSaveStr+"\n\n错误原因:"+e);
    }
}

function os_GetOfflineSaveList(id){
    var ud=os_str+id+os_dg(id).length;
    var s=os_dg("os_"+id+"_Select");
    var lcount=os_getUserData(ud,"count");
    var sv="";
    while (s.length>0) s.remove(0);
    lcount=lcount==""||lcount==null?0:parseInt(lcount);
    if(lcount        s.add(new Option("无数据","0"));
    else{
        s.add(new Option("共有"+lcount+"个记录","0"));
        for(var i=1;i            eval("sv=os_getUserData(ud,\"f_"+i+"_os_savename\");");
            s.add(new Option(sv,i));    
        }
    }
}

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

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

function os_getUserData(sUDName,sName) {
  os_usd.load(sUDName);
  return os_usd.getAttribute(sName);
}

function os_delUserData(sUDName){
  var oTimeNow = new Date(); // Start Time
  oTimeNow.setMinutes(oTimeNow.getMinutes()+1);
  var sExpirationDate = oTimeNow.toUTCString();
  os_usd.load(sUDName);
  os_usd.expires = sExpirationDate;
  os_usd.save(sUDName);
  return;
}

function os_CanSubmit(url){
    var xmlHTTP = window.ActiveXObject? new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();
    xmlHTTP.open("get",url,false);
    xmlHTTP.send("");
    return xmlHTTP.status=="200";
}

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


    
        离线保存
        
        
        
    
    
        
        
            
                
            
            
                
            
        
Ajax演示程序(J2EE)
                    

                    

                    服务端:JDK1.4 TomCAT4.1 Hibernate3 MSSQL Server2000(SP4) DWR1.0

                    客户端:JavaScript(CallBack) VML 
                    

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


                    
                        
                        
                            
                                
                            
                        
                    

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

                                        
                                            
                                                
                                                
                                                
                                            
                                            
                                                
                                                
                                                
                                            
                                        
名称
                                                
公司全称 客户代码
分类 性别 增加日期

                                    

                                

                


        
    


java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
抖音网页版入口与视频观看指南 抖音官网视频在线访问
抖音网页版入口与视频观看指南 抖音官网视频在线访问

本专题汇总了抖音网页版的入口链接、官方登录页面以及视频观看入口,帮助用户快速访问抖音网页版,提供免登录访问方式和直接进入视频播放页面的方法,确保顺利浏览和观看抖音视频。

1

2026.02.04

学习通网页版入口与在线学习指南 学习通官网登录与使用方法
学习通网页版入口与在线学习指南 学习通官网登录与使用方法

本专题详细汇总了学习通网页版入口与登录方法,提供学习通官方网页端入口、学生登录平台、网页版使用指南等内容,帮助用户快速稳定地登录学习通官网,顺利进入学习平台,提升学习效率和体验。

3

2026.02.04

Python Web 框架 Django 深度开发
Python Web 框架 Django 深度开发

本专题系统讲解 Python Django 框架的核心功能与进阶开发技巧,包括 Django 项目结构、数据库模型与迁移、视图与模板渲染、表单与认证管理、RESTful API 开发、Django 中间件与缓存优化、部署与性能调优。通过实战案例,帮助学习者掌握 使用 Django 快速构建功能全面的 Web 应用与全栈开发能力。

1

2026.02.04

Java 流式处理与 Apache Kafka 实战
Java 流式处理与 Apache Kafka 实战

本专题专注讲解 Java 在流式数据处理与消息队列系统中的应用,系统讲解 Apache Kafka 的基础概念、生产者与消费者模型、Kafka Streams 与 KSQL 流式处理框架、实时数据分析与监控,结合实际业务场景,帮助开发者构建 高吞吐量、低延迟的实时数据流管道,实现高效的数据流转与处理。

1

2026.02.04

Golang 容器化与 Docker 实战
Golang 容器化与 Docker 实战

本专题深入讲解 Golang 应用的容器化与 Docker 部署,涵盖 Docker 基础概念、容器构建与镜像管理、Go 应用的 Dockerfile 编写、跨平台容器部署与优化、Docker Compose 和 Kubernetes 部署工具。通过实际案例,帮助学习者掌握 如何将 Golang 应用容器化并实现高效部署与管理,提升系统的可扩展性与运维效率。

2

2026.02.04

全国统一发票查询平台入口合集
全国统一发票查询平台入口合集

本专题整合了全国统一发票查询入口地址合集,阅读专题下面的文章了解更多详细入口。

57

2026.02.03

短剧入口地址汇总
短剧入口地址汇总

本专题整合了短剧app推荐平台,阅读专题下面的文章了解更多详细入口。

104

2026.02.03

植物大战僵尸版本入口地址汇总
植物大战僵尸版本入口地址汇总

本专题整合了植物大战僵尸版本入口地址汇总,前往文章中寻找想要的答案。

49

2026.02.03

c语言中/相关合集
c语言中/相关合集

本专题整合了c语言中/的用法、含义解释。阅读专题下面的文章了解更多详细内容。

9

2026.02.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号