简易而又灵活的Javascript拖拽框架(五)

一、开篇

     在写了前几篇拖拽过后,有不少朋友留言说如果将拖拽结果持久化将会更好。在了解了JavascriptCookie的操作还有一点JSON知识过后,修改了上一篇文章的代码,可以将结果保存在客户端Cookie,每次打开页面就可以载入上次拖拽的数据,得到上次的拖拽布局。

     查看示例

二、原理

     首先添加了两个方法:setCookiegetCookie,分别用来添加/修改Cookie和读取Cookie,这些教程太多了,就不多说了。

     然后来说说打开网页到关闭网页的整个过程:

1、打开网页的时候,会通过getCookie去读取名为“XDrag”的Cookie,如果用户是第一次打开这个页面(或者是禁用、手动删除了Cookie,总之客户端没有对应的Cookie的时候),则会有一个默认的配置;

2、网页的html元素的结构也有所变化,以前是直接把拖拽的模块直接放置在对应的页对应的列,现在是统一放在tempContainer这个div中,通过读取的配置来将tempContianer里面的模块“分发”到配置指定的页制定的列;

3、注册window.onbeforeunload事件,在页面unload之前保存配置到Cookie。保存的方法就是遍历每一页的每一列的每一个模块,将每个模块的id记录下来,根据页面和列和id来构造一个JSON字符串(因为Cookie保存的值就是字符串),这样读取的时候只需要用eval即可得到保存的数据的对象,这是JSON的优点。

下面是这个JSON字符串的结构,嵌套了3array

 

jsonObj.pages得到pages数组

jsonObj.pages[0]得到page1的列的数组

jsonObj.pages[0][0]得到page1的第一列的所有id的集合

三、代码

       下面是几个添加的几个主要的方法:

setCookie和getCookie

遍历布局保存到Cookie


从Cookie读取保存的布局

 

四、示例下载

      点此下载示例

posted @ 2008-10-06 14:04 LongWay 阅读(2801) 评论(18)  编辑 收藏 网摘 所属分类: Javascript

  回复  引用  查看    
#1楼 2008-10-06 14:34 | Justin      
帅呆了
  回复  引用    
#2楼 2008-10-06 14:41 | bf419 [未注册用户]
额的神,好喜欢哦,收藏先
  回复  引用  查看    
#3楼 2008-10-06 15:22 | Ryan Gene      
很不错啊,支持
  回复  引用  查看    
#4楼 2008-10-06 15:23 | 火无极      
跟TOM做的一样啊!呵呵
  回复  引用  查看    
#5楼 2008-10-06 19:16 | 飘遥(周振兴)      
很不错~
再加上拖到相应的列,宽度自动调整~
  回复  引用  查看    
#6楼 2008-10-06 20:37 | 沛沛      
好东西,
  回复  引用  查看    
#7楼 2008-10-06 23:11 | 邱多云      
经典的哦。。
  回复  引用  查看    
#8楼 2008-10-07 08:29 | gguowang      
很帅哦 谢谢!
  回复  引用  查看    
#9楼 2008-10-07 08:41 | 王国金      
很不错啊。谢谢楼主分享!这个功能以前也有实现过,但是效率一直不怎么可以。机子实行时CPU会超高。试试楼主的先!
  回复  引用  查看    
#10楼 2008-10-07 09:22 | 有容乃大      
额的神啊,真的很强大,多谢分享。

-----------------------------------------------
.net项目开发工具(V3.0 ):
http://www.cnblogs.com/mrhgw/archive/2008/08/06/1261664.html
http://www.mrhgw.cn

  回复  引用  查看    
#11楼 2008-10-07 15:20 | 豆苗      
顶了
  回复  引用    
#12楼 2008-10-07 16:39 | kankana [未注册用户]
如何实现自由布局,比如说column宽度可以随意占几个的宽度
  回复  引用    
#13楼 2008-10-07 19:17 | hite [未注册用户]
不错,顶了
  回复  引用  查看    
#14楼 2008-10-08 12:42 | 菩提树下的杨过      
不错,跟WC小兄弟的CDrag有得一拼

我上次利用他的JS代码+WCF实现的数据库保存
http://www.cnblogs.com/yjmyzz/archive/2008/09/20/1294753.html

如果楼主再改进一下,比如能修改标题文字,动态增/删模块,设置每个模块的显示记录条数,就完全能取代WebPart了
  回复  引用    
#15楼 2008-10-13 10:03 | 潘凯 [未注册用户]
我都看呆了
  回复  引用  查看    
#16楼 2008-10-15 10:02 | 小庄      
希望楼主能增加拖拽框的最小化,还原,关闭功能!
  回复  引用  查看    
#17楼 2008-10-21 16:55 | peace      
无条件支持下
  回复  引用  查看    
#18楼 2008-11-07 21:32 | Peach      
非常好

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-12-02 00:20 编辑过
Google站内搜索



相关文章:


相关搜索:
Javascript 拖放 框架 拖拽 保存

相关链接: