文档章节

Dwz手册的补充说明和常见问题

翊骷
 翊骷
发布于 2014/05/04 14:39
字数 2024
阅读 87
收藏 1

 

1、我如何在项目中使用dwz?

手册中有如下说明:

 

设计思路
第一次打开页面时载入界面到客户端, 之后和服务器的交互只是数据交互, 不占用界面相关的网络流量.

支持HTML扩展方式来调用DWZ组件.

标准化Ajax开发, 降低Ajax开发成本.

 

也就是说,只需要在一个页面(通常是起始页,如index.aspx/index.php)包含框架,这里的框架是指demoindex.html页面的所有元素(<div class=”page”可自定义),完整的html结构。其它的页面只需要页面碎片,就是<body></body>中的部分。

2、怎样初始化dwz

Dwz是通过init函数初始化,index.html的初始化函数如下:

 


DWZ.init( " dwz.frag.xml " , {
//         loginUrl:"loginsub.html", loginTitle:"登录",     //  弹出登录对话框
        loginUrl: " login.html " ,     //  跳到登录页面
        statusCode:{ok: 200 , error: 300 , timeout: 301 },  // 【可选】
        pageInfo:{pageNum: " pageNum " , numPerPage: " numPerPage " , orderField: " orderField " , orderDirection: " orderDirection " },  // 【可选】
        debug: false ,     //  调试模式 【true|false】
        callback:function(){
            initEnv();
            $(
" #themeList " ).theme({themeBase: " themes " });
        }
    });

 

Dwz.init(pathToDwz_frag_xml, options);

pathToDwz_frag_xml: js方式能访问到的dwz.frag.xml,一定要保证通过这个地址能访问到dwz.frag.xml文件,最好用serverPath+dwz.frag.xml的绝对路径方式。

Options是一个对象方式的参数:

loginUrl:ajax json返回timeout的时候会跳转到此页面

statusCode:自定义的json错误代码,如果不指定将使用图片所示的默认规则。

pageInfo:这里可以为pagerForm指定别名,比如pageNum:”currentPage”

Callback:指定初始化完成后的回调函数。有人问如何在打开dwz的时候在我的主页加载另一个页面或者打开一个navTab,就可以在callback里使用navTab.open(“main”), $.pdialog.open等等。

3、我如何解析json数据来重绘表格/页面?

很多人不明白dwz的工作方式,认为dwznavTab的页面看起来是ajax方式解析的,那就要从服务器传回json再手动解析。Dwz事实上就是这样工作的,只是他传回的不是一部分数据,而是整个页面,然后通过loadUrl加载到navTab上,这个过程对使用者是透明的,也即你不需要关心页面的数据处理,以前怎么写的页面,现在还是怎么写页面。Dwz会将普通请求转换为ajax方式(前提是正确使用dwz提供的接口)。

4、如果不是传输数据,dwz的json是用于哪里?

Dwz的服务器端响应上提到一个服务器端响应json,很多初学者问这个json如何传递数据,用于自己拼接页面等。如第3点所说,dwz的页面是不需要手动处理ajax的,这个json结构是对打开navTab,dialog, ajax表单提交、ajax post链接(ajaxTodo)状态的响应,而不涉及具体的页面数据。

5、提交表单或者ajax post链接后,如何刷新本navTab

一定要记住在返回的json中加上要刷新的navTabId

6、如何在ajax连接扩展中使用回调函数?

手册上没有写,其实从1.2RC1开始,ajax link就有了callback属性,用于指定回调函数,如<a target=”ajaxTodo” callback=”MyOwnFunction”

7、如何使用table和css table的排序功能?

Table的排序功能是手册中没有提到的,其实dwz的排序功能相当强大,这里我简单介绍一下流程:

1、      给要排序的表格<table中加上asc=”asc” desc=”desc”,指定排序别名。

2、      给要排序的表格表头th加上orderField=”fieldName”属性,这样点击该表头才能出发提交事件。Thclass=”asc”/class=”desc”会分别显示向上和向下的箭头,这个不是只显示这么简单,往下看。

3、      pageForm加上orderFieldorderDirection,点击排序后提交的依然是pagerFormorderField会绑定点击的thorderField,而orderDirection则会反向绑定thclass,这是dwz智能的地方,也就是你不用手动记住状态来反向(感谢细心的作者),class=”asc”就会提交orderDirection = desc。注意每次要将orderDirection绑定回thclass

8、如何使用table和css table的分页功能?

       分页功能是大家用得比较多,也是不容易理解的一点。这里我凭着自己的理解给初学者讲讲。

       手册上讲得很清楚,dwz不是客户端分页,而是服务器端分页,结合本文第3点可以知道dwz的分页就是每次将分页数据提交回后台,后台生成分页数据显示到页面上。需要注意的是以下几点:

1、 分页只需要pagerFormpagination两个dwz组件,点击分页提交的是pagerForm

2、 pagerForm用于带查询的分页数据的缓存,说缓存是因为这里的参数都需要自己手动从后台读取绑定(pageNum除外)。

3、 Pagination可以理解为一个页码生成器,他需要totalCount="200" numPerPage="20" pageNumShown="10" currentPage="1"几个参数来显示,每次后台需要绑定这几个参数,dwz不会帮你做什么事情,也就是你想他显示第几页就是第几页。

4、 点击分页,dwzpaginationcurrentPage绑定到pagerFormpagerNum,然后提交pagerForm到后台。

5、 初学者可以做这件事情来帮助理解:页面只放pagerForm和一个divpaginationdiv每次显示当前的pageNumpagination,点击分页来好好体验以下这个过程,这对第三点的理解也有帮助。

9、如何使用输入表单客户端验证?

客户端表单验证也是手册上的js库介绍中的dwz.regional.zh.js一节有介绍。结合demo中的demo_page4.html,简单明了。

10、如何使用combox的ajax联动?

手册上提及的联动方式,稍微扩展一下就可以达到ajax联动的目的。在selectchange时间中,根据当前选择请求下一级的数据就可以了。注意要使用同步ajax方式。

11、如何做局部刷新?

1.3版中已经具有局部刷新功能,手册解释如下:

 


DWZ局部刷新怎样做 ?
API调用方式:

$(
" #xxxId " ).loadUrl(url,data, callback);

html扩展链接方式:

< a href = " url "  target = " ajax "  rel = " xxxId " ></ a >

 

1.2版可用loadUrl方式。

 

12、如何去掉dwz调用ajax方法出现的等待图片

这是作者给出的解决方式:

 


dwz.ui.js 

var ajaxbg 
=  $( " #background,#progressBar " );
ajaxbg.hide();
$(document).ajaxStart(function(){
ajaxbg.show();
}).ajaxStop(function(){
ajaxbg.hide();
});

 

也可以把自己的$.ajaxgloble设置为false来屏蔽ajaxStart方法。

13、最后谈谈我的看法

Dwz作为一个开源的ajax前端框架,为广大的web开发者提供了极大的方便,这点对初学者可能还没有这么深刻,不过一些老程序员可是感动得一塌糊涂。可以看出,这个框架倾注了作者极大的心血,而大家的热情就是对这种奉献精神的最好回报。本人接触dwz不过区区1个月,但是一直坚持和大家一起讨论问题,就是希望有越来越多的人能够使用dwz,这样才能使其具有长久的生命力。

对于web开发老手来说,dwz很容易上手,对于新手,我想提几条建议:

1、 先要有基础的web知识,手上常备js手册和dwz手册。

2、 遇到问题先试着从手册和demo里寻找解决办法,尽量不要问手册中已经存在的问题,相信没有人会喜欢一遍一遍回答诸如navTab是什么,navTabId是什么之类的问题。

3、 相信dwz能够用于项目,现在已经有人成功了。所以放手去做吧。

4、 尽量使用最新版本,作为一个开源项目,dwz更新是平凡的,通过这种更新来消除bug,同时引入新的特性。所以请升级你的版本到最新稳定版本或RC版本。

© 著作权归作者所有

共有 人打赏支持
上一篇: EL表达式讲解
翊骷
粉丝 14
博文 125
码字总数 68191
作品 0
济南
程序员
私信 提问
Ajax开发视频教材

视频下载地址: http://dwz.duqn.com/doc/dwz-ajax-develop.swf ajax 表单提交、分页组件 大家在使用DWZ框架过程中遇到问题最多的也是ajax表单提交处理流程、分页组件问题。本教材主要是讲解...

张慧华
2010/05/16
1K
1
Neo4j 2.3.12 发布,包含 bug 修复改进的常规维护版本

Neo4j 2.3.12 已发布,这是一个维护版本,包含关键的安全修复和其他重要的改进。Neo4j 是一个高性能的 NoSQL 图形数据库。 值得关注的更新: Kernel:关闭节点关系中 iterable 的语句 #9752 ...

局长
2017/12/16
335
0
常用框架用户手册汇总

前端框架(HTML + CSS + JavaScript) DWZ富客户端框架 DWZ富客户端框架用户手册 DWZ Git仓库 DWZ在线演示 框架介绍: DWZ 富客户端框架(jQuery RIA framework), 是中国人自己开发的基于 jQ...

kklin
2015/04/15
9
0
微信小程序(应用号)资源汇总整理(转)

微信小应用资源汇总整理 开源项目 WeApp - 微信小程序版的微信 wechat-weapp-redux-todos - 微信小程序集成Redux实现的Todo list wechat-weapp-gank - 微信小程序版Gank客户端 wechat-dribb...

老朱教授
2017/10/09
0
0
硬件设计时那些未用的引脚如何处理?

随着集成电路规模的越来越大,如今的大规模芯片都集成了很多功能模块,但是在实际的电路设计中我们又不可能把芯片所有的功能模块(或者说接口)全部用上,因此总会有或多或少的管脚会“用不上”...

dp29sym41zygndvf
2018/04/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

jdk11 HttpClient 爬虫

目的: 获得目标背单词网站中的单词, 写了一个简单的小爬虫, 使用jdk11 到此, 思路明确! 第一步, 把冰箱门...., 串词了,Sorry!! 第一步, 调用登陆接口, 拿到sessionid! 第二步, 带着sessionid...

GOToo
19分钟前
2
0
matlab-自控原理 taylor 泰勒展开 一、二元函数

  matlab : R2018a 64bit     OS : Windows 10 x64 typesetting : Markdown    blog : my.oschina.net/zhichengjiu    gitee : gitee.com/zhichengjiu   一元函数的泰勒展开 code c......

志成就
29分钟前
1
0
PreparedStatement批量执行sql

案例: 工具方法: public static Connection getConnection(){try {Class.forName("com.mysql.jdbc.Driver");ct = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/......

ZeroneLove
46分钟前
0
0
【scala】3.数组相关操作

简介 在本章中,我们将会学到如何在scala中操作数组。 1、定长数组 // 初始化长度为10的定长数组,每一个元素的值为0val nums = new Array[Int](10)// nums: Array[Int] = Array(0, 0, 0, ...

Areya
52分钟前
2
0
教你零基础如何快速入门大数据技巧

现在是大数据时代,很多人都想要学习大数据,因为不管是就业前景还是薪资都非常的不错,不少人纷纷从其他行业转型到大数据行业,那么零基础的人也想要学习大数据怎么办呢?下面一起探讨下零基...

董黎明
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部