今天我们介绍一个新的插件 - Sisyphus.js,这个插件是由Alexander Kaupanin开发的一个类似Gmail客户端草稿保存的jQuery插件,帮助你的用户在客户端保存未写完的草稿。
我们需要解决什么样的问题呢?
但凡使用过互联网的用户,都会有如下的惨痛教训:
洋洋洒洒的写了一篇几百的文章,正准备保存发布的时候,发现浏览器崩溃了,或者是你刚准备评论一篇不错的文章,可正准备递交的时候,你PC死机了。又或是你正准备发布时,不小心按错了快捷键F5或者后退键?
是不是你也曾为以上情况抓狂过?对于本人来说,我至少遇到过10次以上,每一次我都后悔自己为什么不早些保存。当然我们可以使用一些浏览器的插件,比如firefox的一些插件(例如,Lazarus)能够帮助你在本地保存表单上的数据。但是对于其它浏览器呢? 或者对于没有装插件的PC呢?
今天我们介绍的这款jQuery插件,绝对能让你以后避免遇到如此惨痛的经验。
自动保存的解决方案
通常使用的解决方式是按时自动保存表单内容到本地的文件中,完成后拷贝内容回表单输入项目中。
有的网站提供一个保存为草稿的按钮,但是这个并不非常方便,最方便的方式就类似Gmail提供一个定时自动保存机制。
使用Sisyphus.js
这里我们使用简单的方式来实现自动保存功能,数据将会保存到浏览器的local storage,然后直接从这里取出数据内容。
Javascript代码
引入jQuery类库,版本需要是1.2以上
调用Sisyphus,如下:
$('#GBin1form1. #GBin1form2').sisyphus();
或者你需要提供所有的表单自动保存机制:
$('Gbin1allform').sisyphus();
以上代码中,我们调用sisyphus方法来实现表单数据的自动保存。同时你可以自定义一些选项,如下:
customKeyPrefix
一个自定义的额外key用来保存表单内容数据
timeout
数据自动保存的间隔时间,按秒计算,如果设置为“0”,那么每一个字段更新都自动执行保存
onSave
本地保存操作后触发这个方法
onRestore
数据从本地存储读取后触发的方法,和onSaveCallback不一样,它作用于整个表单,而非某一个字段
onRelease
本地存储数据清空后调用的方法
我们可以使用如下代码自定义选项:
$('Gbin1allform').sisyphus({ customKeyPrefix: 'gb', timeout: 5, onSave: function() {}, onRestore: function() {}, onRelease: function() {} }}
你可以针对不同的表单设置不同的插件选项,并且能够随时修改插件对应的选项。
$('Gbin1allform1').sisyphus({ customKeyPrefix:'gbin1', timeout: 5, onSave:function() {}, onRestore: function() {}, onRelease: function() {} }}$('Gbin1allform2').sisyphus({ customKeyPrefix:'gbin1', timeout: 1, onSave: function() {}, onRestore: function() {}, onRelease: function() {} }}$.sisyphus().setOptions( {timeout:10} ); //设置全局选项 var gbin1 = $('#Gbin1allform1').sisyphus();gbin1.setOptions( {timeout: 15} ); //设置指定表单选项
插件信息
浏览器支持:
Chrome 4+,
Firefox 3.5+,
Opera 10.5+,
Safari 4+,
IE 8+,
Android 2.2,也应该可以在其它平台运行,需要你自己测试一下
使用要求:
jQuery1.2+
原文地址:http://www.zydsybocom/gbin1ocom/
感谢 gbin1ocom 的投稿