百度技术沙龙第 1​7 期 富客户端时代的 JavaScript 框架

在 8 月 20 日百度主办、InfoQ 策划组织实施的第 17 期百度技术沙龙活动上,来自百度商务搜索部前端工程师董睿以及 IBM 中国开发中心的高级软件工程师成富,分别分享了 JavaScript 框架的相关话题,话题涉及企业级 RIA 框架的应用以及实际产品开发中的 Dojo 框架。本文将对他们各自的分享做下简单的回顾,同时提供相关资料的下载。

 

主题一:整站式 Ajax 应用开发与 ER(Enterprise RIA)框架(视频,MP3 和 Slides 等资料下载)

 

来自百度的前端工程师董睿第一个为大家分享,演讲内容涵盖整站式 Ajax 应用介绍、ER(Enterprise RIA)框架介绍以及整站式 Ajax 与 ER 框架的应用开发,其中重点讲述了整站式 Ajax 与 ER 框架在实际开发中的应用。董睿首先列举了常见开发中遇到的问题:​​​​​​

 

URL 敏感

浏览器的前进后退

处理 Location 对应的请求行为(数据加载、视图渲染等)

Action 太多,乱七八糟

数据怎么管理

数据可能被多个场景使用

在 JavaScript 里写 HTML 片段很不爽(换行、转义等)

UI 控件管理界面交互

复杂区块的渲染

频繁的 new 与 append

进入页面的时候加载的 Js 文件太大​

在 ER 框架中,主要的解决方法有:

 

封装 Locator(当 Locator 变更时,Locator 通知 Router 分发到某个 JavaScript Function 进行处理)

Controller 转交给某个 Object 进行处理(Action)

Action 对模型与视图进行选择与匹配,完成用户行为的处理

对相似业务逻辑的 Action 进行归类

数据的存储容器

针对 propertychange 的事件监听机制

public 与 private 分级

使用 HTML 注释

支持不闭合声明

支持对 model 和 JS Object 的引用:${}

不提供流程控制的支持

通过自定义 ui 标签来实现便捷的控件创建方式

通过“*”来实现方便的引用 Context 中的数据

controller 根据 path 选择 Action 时,自动加载,以此来解决加载 Js 文件太大的问题

此外,董睿还分别从目录结构、架构的分层结构、开发时的 JavaScript 管理、开发时的 CSS 管理、开发时的 template 管理以及打包与压缩等常见的场景,通过具体的代码示例以及相应的总结,将其在开发中的经验加以分享。

 

最后,董睿总结了 ER 框架所具备的特性:实现了历史记录,前进后退等功能的封装、URL 敏感,处理 Location 对应的请求,提供数据环境,数据模型,HTML 片段编写的便利性,控件的加载与业务行为,按需加载,目录结构以及开发时的源代码管理等。​

 

主题二:实际产品开发中的 Dojo(视频,MP3 和 Slides 等资料下载)

 

成富主要从 JavaScript 框架的世界讲起,阐述为什么要选择 Dojo 这么一个开源的产品,然后介绍了实际产品和项目中的 Dojo 开发,最后总结了其在长期的使用过程中所遇到的经验与教训。

 

成富在演讲中提到,之所以 IBM 选择 Dojo 作为 IBM 的 RIA 标准框架,是因为 Dojo 具有交互性要求高、企业内联网和适合团队开发等特点。目前在 IBM,广泛使用 Dojo 框架的产品有 IBM Mashup Center、IBM Connections、Lotus Live。

 

接下来成富重点介绍了实际项目中的 Dojo 开发流程以及注意事项,只用 Dojo 的基本开发流程为:

 

界面草图(草图设计)

布局(使用布局组件手动控制)

组件(使用标准组件、扩展标准组件、自定义组件或是复用其它组件等)

界面(组件交互)

成富建议的组件使用路线图为:找到组件、直接使用组件、扩展组件,以及把组件功能发挥到极致的自定义组件。此外,成富还对组件从属性和方法的层面进行了剖析,介绍了组件的创建、销毁、交互以及扩展的注意点。在自定义组件时有以下几点需要注意:​

 

组件粒度的权衡(可复用性 vs 性能)。

组件的生命周期管理(创建与销毁)。

遵循惯例(属性和方法的命名,使用 dijit._widget 的方法)。

善用模板和容器(用 HTML 模板来创建基本骨架,继承 dijit._Container 来管理内部子组件)。

​最后,成富分享了其在开发中的经验和教训,目前主要面临的非功能性需求主要有:

 

性能问题

内存占有率和内存泄露问题

可访问性

单元测试​

以上问题的应对机制分别为:打包和压缩代码、控制页面上的组件数量,添加正确的组件销毁逻辑等。此外 Dojo 是首个提供支持完全可访问性组件库的 JavaScript 框架,还支持 W3C 的 ARIA 标准。单元测试的工作是通过 D.O.H 来进行逻辑单元测试的,同时使用 D.O.H Robot 还可进行界面相关的单元测试。

 

Open Space(开放式讨论环节)

 

和以往的环节一样,​为了让参会者能够有更多的时间进行相互的交流,本次活动依然设置了 Open ​Space(开放式讨论)环节。除了讲师​董睿和成富外,王文明、杨飞、贾珣也参与了小组讨论。在 Open Space 的总结环节,几位嘉宾​分别对讨论的内容进行了总结:​​

 

董睿分享了“Web 资源(文本)压缩”的话题,主要提到了 JavaScript 和 HTML 的一些压缩策略以及针对搜索引擎的优化策略等。​​成富则继续他演讲的话题“JS 框架在实际开发中的应用”,参会者对 Dojo 产生了浓厚的兴趣,成富对相关问题进行了解答,大家进行了深入的讨论,最后还讨论了关于常见 RIA 框架的一些问题。此外,王文明、杨飞、贾珣分别分享了“Zend Framework 快速开发和 PHP 性能优化”、“富客户端与轻量级互联网应用”以及“Node.js 的前景”等话题。

 

​​​​会后一些网友在新浪微博分享了他们参会的感受:

 

@陆明在京:今天下午百度技术沙龙主题和实用性都不错,蛮有价值的。

 

@北京辛星:# 百度技术沙龙 # 今天参加百度技术沙龙,对 js 富客户端有了更多的了解,谢谢组织者和分享话题的各位。

 

@甘志:# 百度技术沙龙 # 提供的冰啤酒不错,内容也很精彩,以后要多参加。

收藏 评论(1)
分享到:
共1条回复 最后由Q1058204131 回复于2019-08-04 15:37
#2 Q1058204131 回复于2019-08-04

http://gbsgjd.wikidot.com/,
http://mfghdg.wikidot.com/,
http://jsdfghd.wikidot.com/,
http://hfsgf.wikidot.com/,
http://fcnfgsg.wikidot.com/,
http://jfjdsgf.wikidot.com/,
http://hkdtrj.wikidot.com/,
http://fsdgshk.wikidot.com/,
http://fhsdgj.wikidot.com/,
http://fgsdfgs.wikidot.com/,
http://mczfjkm.wikidot.com/,
http://nzgsgj.wikidot.com/,
http://fhsahh.wikidot.com/,
http://ghsdhd.wikidot.com/,
http://nfdgsdd.wikidot.com/,
http://mfgxjch.wikidot.com/,
http://gfhfsa.wikidot.com/,
http://goyfhglk.wikidot.com/,
http://fkgkjjk.wikidot.com/,
http://hgdhds.wikidot.com/,
http://mhdfhs.wikidot.com/,
http://yursdff.wikidot.com/,
http://hdfgdgs.wikidot.com/,
http://shanghhfg.wikidot.com/,
http://fhsshbx.wikidot.com/,
http://mngbsd.wikidot.com/,
http://jsrebx.wikidot.com/,
http://kdgszg.wikidot.com/,
http://hdfhsa.wikidot.com/,
http://jfdsfhd.wikidot.com/,
http://nfgssnt.wikidot.com/,
http://fdgsdas.wikidot.com/,
http://hjrszd.wikidot.com/,
http://hgjskk.wikidot.com/,
http://hedjszm.wikidot.com/,
http://hjuskf.wikidot.com/,
http://kdsrjsg.wikidot.com/,
http://nfdgsar.wikidot.com/,
http://ghkddsj.wikidot.com/,
http://fgjcbxg.wikidot.com/,
http://tgsahd.wikidot.com/,
http://zgsgsrk.wikidot.com/,
http://qrysxk.wikidot.com/,
http://gstrho.wikidot.com/,
http://hckdsk.wikidot.com/,
http://shafhf.wikidot.com/,
http://zsfxmnh.wikidot.com/,
http://mzjtia.wikidot.com/,
http://nfdhssg.wikidot.com/,
http://hkffbd.wikidot.com/,
http://zdfwjt.wikidot.com/,
http://xcrghs.wikidot.com/,
http://nsgzfg.wikidot.com/,
http://hgsdsa.wikidot.com/,
http://aezfgh.wikidot.com/,
http://bxbned.wikidot.com/,
http://gabzjjg.wikidot.com/,
http://hsgyfj.wikidot.com/,
http://hsfdhf.wikidot.com/,
http://zvshetg.wikidot.com/,
http://zzyurej.wikidot.com/,
http://lchdhjw.wikidot.com/,
http://hzjstgrs.wikidot.com/,
http://dzjhkfy.wikidot.com/,
http://jndhas.wikidot.com/,
http://zbhfher.wikidot.com/,
http://ytdghs.wikidot.com/,
http://whhsvs.wikidot.com/,
http://wfkfdsz.wikidot.com/,
http://qdjsgt.wikidot.com/,
http://mgssgtg.wikidot.com/,
http://jdgsjah.wikidot.com/,
http://fhkfak.wikidot.com/,
http://hfhfdds.wikidot.com/,
http://hskefx.wikidot.com/,
http://xykjdg.wikidot.com/,
http://qankfhd.wikidot.com/,
http://xakfhd.wikidot.com/,
http://bjsgsw.wikidot.com/,
http://hzgdstg.wikidot.com/,
http://hfgfhn.wikidot.com/,
http://ashdfyh.wikidot.com/,
http://dldhds.wikidot.com/,
http://wsjfh.wikidot.com/,
http://bxkdhkf.wikidot.com/,
http://ykkfpgh.wikidot.com/,
http://jzkfphj.wikidot.com/,
http://pjkfpof.wikidot.com/,
http://hdkdjf.wikidot.com/,
http://ddkfpgj.wikidot.com/,
http://cykfpjf.wikidot.com/,
http://hldkfpt.wikidot.com/,
http://jygkfphj.wikidot.com/,
http://lzkfphj.wikidot.com/,
http://tlkfphk.wikidot.com/,
http://jqkfpjh.wikidot.com/,
http://tskfpjg.wikidot.com/,
http://xzkfojh.wikidot.com/,
http://wxkfpjh.wikidot.com/,
http://zykfpjh.wikidot.com/,
http://yckfpkjn.wikidot.com/,
http://ntkfpjh.wikidot.com/,
http://szkfpjh.wikidot.com/,
http://lygkfphj.wikidot.com/,
http://chgeesd.wikidot.com/,
http://cckfplk.wikidot.com/,
http://jlkfplk.wikidot.com/,
http://thkfplk.wikidot.com/,
http://spkfplk.wikidot.com/,
http://yzkfplk.wikidot.com/,
http://bckfplk.wikidot.com/,
http://ddjkfplk.wikidot.com/,
http://jjhekfplk.wikidot.com/,
http://henkfplk.wikidot.com/,
http://jnskfplk.wikidot.com/,
http://dqkfplk.wikidot.com/,
http://gykfplk.wikidot.com/,
http://qthkfplk.wikidot.com/,
http://lpskfplk.wikidot.com/,
http://zykfplk.wikidot.com/,
http://kmkfplk.wikidot.com/,
http://ljkfplk.wikidot.com/,
http://qjkfplk.wikidot.com/,
http://yxkfplk.wikidot.com/,
http://zygkfplk.wikidot.com/,
http://zzkfplk.wikidot.com/,
http://qzkfplk.wikidot.com/,
http://xmkfplk.wikidot.com/,
http://ptkfplk.wikidot.com/,
http://fzkfplk.wikidot.com/,
http://tjkfplk.wikidot.com/,
http://cskfplk.wikidot.com/,
http://sjzkfplk.wikidot.com/,
http://cqkfplk.wikidot.com/,
http://bjkfplk.wikidot.com/,
http://dfsgfda.wikidot.com/,
http://dsfgdsf.wikidot.com/,
http://dsfgdsg.wikidot.com/,
http://sdgdsfyh.wikidot.com/,
http://dsgdhg.wikidot.com/,
http://ljmdsgdfg.wikidot.com/,
http://fdhggfkj.wikidot.com/,
http://fhfdsf.wikidot.com/,
http://dsfgsdhy.wikidot.com/,
http://dsfgdfftg.wikidot.com/,
http://sdtgdfd.wikidot.com/,
http://dsgdszfg.wikidot.com/,
http://jhtgjh.wikidot.com/,
http://zdfgds.wikidot.com/,
http://dsgdfdcx.wikidot.com/,
http://vdsghg.wikidot.com/,
http://aghfghj.wikidot.com/,
http://dsgdsdfg.wikidot.com/,
http://dfgsfg.wikidot.com/,
http://dfggd.wikidot.com/,
http://dfjhklfg.wikidot.com/,
http://gfvjhfg.wikidot.com/,
http://dsfgfdf.wikidot.com/,
http://fdstdy.wikidot.com/,
http://dsftdrcg.wikidot.com/,
http://bgfcgh.wikidot.com/,
http://ghfhj.wikidot.com/,
http://hgfghv.wikidot.com/,
http://sdgf.wikidot.com/,
http://gjmhfgh.wikidot.com/,
http://vhgvh.wikidot.com/,
http://hfghg.wikidot.com/,
http://fdgddf.wikidot.com/,
http://sdgd.wikidot.com/,
http://dsfdf.wikidot.com/,
http://sdgfd.wikidot.com/,
http://dsgdf.wikidot.com/,
http://fgdfsh.wikidot.com/,
http://fgsdf.wikidot.com/,
http://dsfgdf.wikidot.com/,
http://sdgfd.wikidot.com/main:layout,
http://sdgfd.wikidot.com/system:join,
http://sdgfd.wikidot.com/help:_home,
http://sdgfd.wikidot.com/main:contact,
http://sdgfd.wikidot.com/help:first-time-user,
http://sdgfd.wikidot.com/help:creating-pages,
http://sdgfd.wikidot.com/help:editing-pages,
http://sdgfd.wikidot.com/help:navigation-bars,
http://sdgfd.wikidot.com/help:using-modules,
http://sdgfd.wikidot.com/help:templates,
http://dsgdf.wikidot.com/main:layout,
http://dsgdf.wikidot.com/system:join,
http://dsgdf.wikidot.com/help:_home,
http://dsgdf.wikidot.com/main:contact,
http://dsgdf.wikidot.com/help:first-time-user,
http://dsgdf.wikidot.com/help:quick-reference,
http://dsgdf.wikidot.com/help:creating-pages,
http://dsgdf.wikidot.com/help:editing-pages,
http://dsgdf.wikidot.com/help:navigation-bars,
http://dsgdf.wikidot.com/help:templates,
http://dsgdf.wikidot.com/help:css-themes,
http://fgdfsh.wikidot.com/main:layout,
http://fgdfsh.wikidot.com/system:join,
http://fgdfsh.wikidot.com/main:about,
http://dsgdf.wikidot.com/main:about,
http://sdgfd.wikidot.com/main:about,
http://fgsdf.wikidot.com/main:about,
http://fgsdf.wikidot.com/main:layout,
http://fgsdf.wikidot.com/system:join,
http://fgsdf.wikidot.com/help:_home,
http://fgsdf.wikidot.com/main:contact,
http://fgsdf.wikidot.com/help:first-time-user,
http://fgsdf.wikidot.com/help:quick-reference,
http://fgsdf.wikidot.com/help:creating-pages,
http://fgsdf.wikidot.com/help:editing-pages,
http://fgsdf.wikidot.com/help:navigation-bars,
http://fgsdf.wikidot.com/help:templates,
http://fgsdf.wikidot.com/help:css-themes,
http://dsfgdf.wikidot.com/main:about,
http://dsfgdf.wikidot.com/main:layout,
http://dsfgdf.wikidot.com/system:join,
http://dsfgdf.wikidot.com/help:_home,
http://dsfgdf.wikidot.com/main:contact,
http://dsfgdf.wikidot.com/help:first-time-user,
http://dsfgdf.wikidot.com/help:quick-reference,
http://dsfgdf.wikidot.com/help:creating-pages,
http://dsfgdf.wikidot.com/help:editing-pages,
http://dsfgdf.wikidot.com/help:navigation-bars,
http://dsfgdf.wikidot.com/help:templates,
http://dsfgdf.wikidot.com/help:css-themes,
http://fgsdf.wikidot.com/main:home,
http://bcvfdf.wikidot.com/,
http://fdsgfxd.wikidot.com/,
http://lmhjvb.wikidot.com/,
http://dsfsdfg.wikidot.com/,
http://mfcgdsfg.wikidot.com/,
http://mhhdf.wikidot.com/,
http://ljkhjc.wikidot.com/,
http://wefdslo.wikidot.com/,
http://iuydfh.wikidot.com/,
http://pfyfdf.wikidot.com/,
http://ertryrt.wikidot.com/,
http://werdsfsx.wikidot.com/,
http://puhjigh.wikidot.com/,
http://iyufh.wikidot.com/,
http://iytrc.wikidot.com/,
http://uysedhb.wikidot.com/,
http://opirfgh.wikidot.com/,
http://uyrthf.wikidot.com/,
http://ytydfgc.wikidot.com/,
http://retgvcx.wikidot.com/,
http://yuifdg.wikidot.com/,
http://qwreersd.wikidot.com/,
http://tyutgf.wikidot.com/,
http://resfdsf.wikidot.com/,
http://rteddf.wikidot.com/,
http://aqddcz.wikidot.com/,
http://ohjvf.wikidot.com/,
http://yursdf.wikidot.com/,
http://wzsdasd.wikidot.com/,
http://phgfdc.wikidot.com/,
http://sdfwew.wikidot.com/,
http://dtfgrerf.wikidot.com/,
http://reweas.wikidot.com/,
http://qwerad.wikidot.com/,
http://qasdfd.wikidot.com/,
http://dfsgdf.wikidot.com/,
http://fddsfgdf.wikidot.com/,
http://jhiujyu.wikidot.com/,
http://sgtyrt.wikidot.com/,
http://asdsz.wikidot.com/,
http://srfsdf.wikidot.com/,
http://desrs.wikidot.com/,
http://sdfser.wikidot.com/,
http://sddfgs.wikidot.com/,
http://sdfsdg.wikidot.com/,
http://dsfsgfe.wikidot.com/,
http://gwserg.wikidot.com/,
http://xcfdg.wikidot.com/,
http://klfghgf.wikidot.com/,
http://gfdaa.wikidot.com/,
http://yedrcg.wikidot.com/,
http://swefzf.wikidot.com/,
http://dsfsza.wikidot.com/,
http://swezd.wikidot.com/,
http://hghgshg.wikidot.com/,
http://rtsdf.wikidot.com/,
http://dsaew.wikidot.com/,
http://dsfrwlo.wikidot.com/,
http://srdtg.wikidot.com/,
http://dfgwews.wikidot.com/,
http://dsggrw.wikidot.com/,
http://aserdtg.wikidot.com/,
http://dsgadtg.wikidot.com/,
http://eytder.wikidot.com/,
http://dsghsfh.wikidot.com/,
http://dsrww.wikidot.com/,
http://dsfzgds.wikidot.com/,
http://sdtgdf.wikidot.com/,
http://dszfas.wikidot.com/,
http://dfgfxd.wikidot.com/,
http://dsfdse.wikidot.com/,
http://sdrse.wikidot.com/,
http://eawfxf.wikidot.com/,
http://dssdfg.wikidot.com/,
http://dsfwef.wikidot.com/,
http://yyhfc.wikidot.com/,
http://fdsgd.wikidot.com/,
http://scxdfgdf.wikidot.com/,
http://dfsdraa.wikidot.com/,
http://fghdftgsd.wikidot.com/,
http://fsfplk.wikidot.com/,
http://gzfolk.wikidot.com/,
http://stfplk.wikidot.com/,
http://szfplk.wikidot.com/,
http://zhfplk.wikidot.com/,
http://zqfplk.wikidot.com/,
http://zjfplk.wikidot.com/,
http://sgfplk.wikidot.com/,
http://mmfplk.wikidot.com/,
http://jmfplk.wikidot.com/,
http://hyfplk.wikidot.com/,
http://hzfplk.wikidot.com/,
http://swfplk.wikidot.com/,
http://mzfplk.wikidot.com/,
http://yjfplk.wikidot.com/,
http://zsfplk.wikidot.com/,
http://nnfplk.wikidot.com/,
http://qyfplk.wikidot.com/,
http://glfplk.wikidot.com/,
http://dgfplk.wikidot.com/,
http://bhfplk.wikidot.com/,
http://lzfplk.wikidot.com/,
http://qzfplk.wikidot.com/,
http://rlfplk.wikidot.com/,
http://wzfplk.wikidot.com/,
http://ncfplk.wikidot.com/,
http://hezfplk.wikidot.com/,
http://bsfplk.wikidot.com/,
http://fcgfplk.wikidot.com/,
http://ggfplk.wikidot.com/,
http://ganzfolk.wikidot.com/,
http://ycfplk.wikidot.com/,
http://xxfplk.wikidot.com/,
http://pxfplk.wikidot.com/,
http://jafplk.wikidot.com/,
http://srfplk.wikidot.com/,
http://jjfplk.wikidot.com/,
http://fzfplk.wikidot.com/,
http://fuzfplk.wikidot.com/,
http://jdzfplk.wikidot.com/,
http://zzfplk.wikidot.com/,
http://xmfplk.wikidot.com/,
http://quzfplk.wikidot.com/,
http://ptfplk.wikidot.com/,
http://lyfplk.wikidot.com/,
http://czfplk.wikidot.com/,
http://tyfplk.wikidot.com/,
http://shzfplk.wikidot.com/,
http://yqfplk.wikidot.com/,
http://dtfplk.wikidot.com/,
http://csfplk.wikidot.com/,
http://zjjfplk.wikidot.com/,
http://huyfplk.wikidot.com/,
http://xtfplk.wikidot.com/,
http://zzhfplk.wikidot.com/,
http://xyfplk.wikidot.com/,
http://ximfplk.wikidot.com/,
http://whfplk.wikidot.com/,
http://syfplk.wikidot.com/,
http://hsfplk.wikidot.com/,
http://hgfplk.wikidot.com/,
http://shzhfplk.wikidot.com/,
http://xgfplk.wikidot.com/,
http://xnfplk.wikidot.com/,
http://xzfplk.wikidot.com/,
http://zgfplk.wikidot.com/,
http://guyfplk.wikidot.com/,
http://luzfplk.wikidot.com/,
http://deyfplk.wikidot.com/,
http://cdfplk.wikidot.com/,
http://suzfplk.wikidot.com/,
http://qrfplk.wikidot.com/,
http://hffplk.wikidot.com/,
http://fgfplk.wikidot.com/,
http://fdgfplk.wikidot.com/,
http://aqfplk.wikidot.com/,
http://fhfplk.wikidot.com/,
http://masfplk.wikidot.com/,
http://xbfplk.wikidot.com/,
http://xcfplk.wikidot.com/,
http://yuntfplk.wikidot.com/,
http://weihfplk.wikidot.com/,
http://qdfplk.wikidot.com/,
http://jnfplk.wikidot.com/,
http://dyfplk.wikidot.com/,
http://lwfplk.wikidot.com/,
http://hezefplk.wikidot.com/,
http://wffplk.wikidot.com/,
http://zbfplk.wikidot.com/,
http://zgxfplk.wikidot.com/,
http://dezfplk.wikidot.com/,
http://lcfplk.wikidot.com/,
http://lffplk.wikidot.com/,
http://tafplk.wikidot.com/,
http://zhzhfplk.wikidot.com/,
http://zhengzfplk.wikidot.com/,
http://pdsfplk.wikidot.com/,
http://xinxfplk.wikidot.com/,
http://luoyfplk.wikidot.com/,
http://kffplk.wikidot.com/,
http://yyfplk.wikidot.com/,
http://xucfplk.wikidot.com/,
http://jzuofplk.wikidot.com/,
http://hbfplk.wikidot.com/,
http://anyfplk.wikidot.com/,
http://zkfplk.wikidot.com/,
http://xinyfplk.wikidot.com/,
http://sxmfplk.wikidot.com/,
http://sqfplk.wikidot.com/,
http://lhfplk.wikidot.com/,
http://thfplk.wikidot.com/,
http://spfplk.wikidot.com/,
http://liaoyfplk.wikidot.com/,
http://jlfplk.wikidot.com/,
http://ccfplk.wikidot.com/,
http://qqhefplk.wikidot.com/,
http://hegfplk.wikidot.com/,
http://jmsfplk.wikidot.com/,
http://hebfplk.wikidot.com/,
http://dqfplk.wikidot.com/,
http://yucfplk.wikidot.com/,
http://qthfplk.wikidot.com/,
http://mdfplk.wikidot.com/,
http://jxfplk.wikidot.com/,
http://hehfplk.wikidot.com/,
http://wxfplk.wikidot.com/,
http://taizfplk.wikidot.com/,
http://suzhfplk.wikidot.com/,
http://ntfplk.wikidot.com/,
http://njfplk.wikidot.com/,
http://hzhfplk.wikidot.com/,
http://lygfplk.wikidot.com/,
http://xuzfplk.wikidot.com/,
http://yancfplk.wikidot.com/,
http://yzhfplk.wikidot.com/,
http://wzhfplk.wikidot.com/,
http://jiaxfplk.wikidot.com/,
http://zxfplk.wikidot.com/,
http://nbfplk.wikidot.com/,
http://huzfplk.wikidot.com/,
http://hjfplk.wikidot.com/,
http://trfplk.wikidot.com/,
http://tzfplk.wikidot.com/,
http://weizfplk.wikidot.com/,
http://zhsfplk.wikidot.com/,
http://lpsfplk.wikidot.com/,
http://guizfplk.wikidot.com/,
http://bjfplk.wikidot.com/,
http://ansfplk.wikidot.com/,
http://zyfplk.wikidot.com/,
http://ztfplk.wikidot.com/,
http://rxfplk.wikidot.com/,
http://qjfplk.wikidot.com/,
http://ljfplk.wikidot.com/,
http://kmfplk.wikidot.com/,
http://xiyfplk.wikidot.com/,
http://wnfplk.wikidot.com/,
http://xafplk.wikidot.com/,
http://bjifplk.wikidot.com/,
http://tcfplk.wikidot.com/,
http://tsfplk.wikidot.com/,
http://lzhfplk.wikidot.com/,
http://jygfplk.wikidot.com/,
http://jcfplk.wikidot.com/,
http://byfplk.wikidot.com/,
http://zhyfplk.wikidot.com/,
http://plfplk.wikidot.com/,
http://wwfplk.wikidot.com/,
http://jqfplk.wikidot.com/,
http://hmfplk.wikidot.com/,
http://shyfplk.wikidot.com/,
http://fusfplk.wikidot.com/,
http://dlfplk.wikidot.com/,
http://bxfplk.wikidot.com/,
http://asfplk.wikidot.com/,
http://liayfplk.wikidot.com/,
http://fxfplk.wikidot.com/,
http://ykfplk.wikidot.com/,
http://jzfplk.wikidot.com/,
http://ddfplk.wikidot.com/,
http://cyfplk.wikidot.com/,
http://hhhtfplk.wikidot.com/,
http://pjfplk.wikidot.com/,
http://hldfplk.wikidot.com/,
http://tlfplk.wikidot.com/,
http://wuhfplk.wikidot.com/,
http://tonglfplk.wikidot.com/,
http://tjfplk.wikidot.com/,
http://btfplk.wikidot.com/,
http://cffplk.wikidot.com/,
http://wlmqfplk.wikidot.com/,
http://sjzfplk.wikidot.com/,
http://lsfplk.wikidot.com/,
http://hdfplk.wikidot.com/,
http://chdfplk.wikidot.com/,
http://mxcsa.wikidot.com/,
http://wxzaz.wikidot.com/,
http://zxsa.wikidot.com/,
http://zsdc.wikidot.com/,
http://zxcvh.wikidot.com/,
http://sddgh.wikidot.com/,
http://zdsw.wikidot.com/,
http://dfsw.wikidot.com/,
http://dsgf1.wikidot.com/,
http://s44as.wikidot.com/,
http://gzxd.wikidot.com/,
http://fgse.wikidot.com/,
http://rdcs.wikidot.com/,
http://fsec.wikidot.com/,
http://mkhy.wikidot.com/,
http://nbvc.wikidot.com/,
http://cvfd.wikidot.com/,
http://bcvf.wikidot.com/,
http://fdty.wikidot.com/,
http://ufgh.wikidot.com/,
http://hifv.wikidot.com/,
http://ytre.wikidot.com/,
http://tyug.wikidot.com/,
http://oytf.wikidot.com/,
http://sdeo.wikidot.com/,
http://hjsa.wikidot.com/,
http://fdgd.wikidot.com/,
http://fgrw.wikidot.com/,
http://ghfo.wikidot.com/,
http://ngiw.wikidot.com/,
http://jybf.wikidot.com/,
http://fvup.wikidot.com/,
http://hjfy.wikidot.com/,
http://pdun.wikidot.com/,
http://cvbs.wikidot.com/,
http://fdgdfsgdf.wikidot.com/,
http://xzczs.wikidot.com/,
http://dcvxc.wikidot.com/,
http://sdd4ds.wikidot.com/,
http://jkyv.wikidot.com/,
http://fadsgwsea.wikidot.com/,
http://sadas.wikidot.com/,
http://ffdg1df.wikidot.com/,
http://migr.wikidot.com/,
http://ffdgdf.wikidot.com/,
http://czsa.wikidot.com/,
http://hqyv.wikidot.com/,
http://lfdsds.wikidot.com/,
http://fghfh.wikidot.com/,
http://hghfg.wikidot.com/,
http://fdstgf.wikidot.com/,
http://jgsw.wikidot.com/,
http://piyr.wikidot.com/,
http://ghfs.wikidot.com/,
http://fjtv.wikidot.com/,
http://taobao.wikidot.com/,
http://chengbang.ccedpw.com/,
http://nanzhuo3.shop.bxgtd.com/,
http://qiaojiao778.shop.bxgtd.com/,
http://doushi4566.shop.bxgtd.com/,
http://taodao.shop.bxgtd.com/,
http://jidun84.shop.bxgtd.com/,
http://tianquang67.shop.bxgtd.com/,
http://bojuenu1639.shop.bxgtd.com/,
http://cengtied15.shop.bxgtd.com/,
http://yeniangzh49.shop.bxgtd.com/,
http://www.andu729.yhtx.tv/,
http://www.tangyan83.yhtx.tv/,
http://www.ditang2.yhtx.tv/,
http://www.kaonai43043.yhtx.tv/,
http://www.duishuo.yhtx.tv/,
http://www.pabenye4186.yhtx.tv/,
http://www.waxuanqi61.yhtx.tv/,
http://www.haoganson86.yhtx.tv/,
http://www.piaoqinc13.yhtx.tv/,
http://www.qianghuai78.yhtx.tv/,
http://www.shenxiao34.yhtx.tv/,
http://www.fengniuge59.yhtx.tv/,
http://www.daojiongr71.yhtx.tv/,
http://www.sunkaizu34.yhtx.tv/,
http://www.cengshes84.yhtx.tv/,
http://www.51xsq.com/qy/yunqiang208/,
http://www.51xsq.com/qy/youshi66/,
http://www.51xsq.com/qy/kongwei55447/,
http://www.51xsq.com/qy/wendou/,
http://www.51xsq.com/qy/bibei8414689/,
http://www.51xsq.com/qy/hudiecu7642/,
http://www.51xsq.com/qy/tuncangt95/,
http://www.51xsq.com/qy/jianniuda12/,
http://www.51xsq.com/qy/yanpaijio77/,
http://www.51xsq.com/qy/feixiong68/,
http://www.51xsq.com/qy/tuofengj14/,
http://www.51xsq.com/qy/mengsong30/,

0