`
piperzero
  • 浏览: 3480348 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

.DWZ源代码分析1--框架入口

 
阅读更多
DWZ框架一个国产的单页面RIA框架,RIA即富客户端互联网应用程序,是指在web上实现如桌面软件一样的操作界面.....
这个库是对javascript的二次封装、即封装了jQuery. DWZ框架为我们定义好了框架的布局样式.我们在使用的时候只需要偷梁换柱即可。我们可以以html的样式进行控件的引用.只需要设置好ID即可,因为在js后台已经为我们设置好了样式。 通过不同的id以及不同标签的配合实现可以实现强大的客户端界面。
最近因为某种需要开始学习使用DWZ框架,说实话这个框架的确挺不错的.只通过修改框架就可以实现强大的客户端界面,但是这个框架
的文档却做得不是那么好。网上的一致评论是入门教程少.并且文档也讲述的不好,这个我亲身经历,这个框架并没有他教程里说道的那样入门简单,不需要js和jQuery基础...因为要使用和扩展这个框架就必须进行修改.这里我觉得javascript 和 jQuery都需要有一定的了解才可以 ...没办法文档教程不给力只能分析源代码,这的确是一件纠结的事情.. ..纠结了一个星期终于整明白了..
分析的时候使用我编写的 JFunctionFinder 工具检索,,关键字,分析的确挺方便的..这个在上篇有源代码...
DWZ框架的入口
这个框架核心在 dwz.core.js的文件下,它包含了 贯穿整个DWZ框架的核心方法 如页面初始化 init和 表单提交ajax等
还有包括一些页面加载配置等信息,我们就没必要去逐个分析了,知道如何使用就可以了。这里主要介绍init函数
DWZ小组在这个js页面下创建了一个名字为DWZ的对象.这个对象是一个键值对数组.
javascript的一种对象表示形式,,比如上面的init方法.在DWZ中的定义就类似如下、
var DWZ={
inti:function(){
,,,,,核心代码
} ,
ajax:function(){
ajax代码....
}
};
不熟悉javascript的人可能觉得这是个什么玩意,其实这是定义了一个数组,数组内部包含着键值对数组,
数组每个元素的键就代表函数的名字, 因为数组也是对象所以我们看到 在 DWZ提供给我们的jui 中
的index.html头部包含这样一段代码:
<script type="text/javascript">
/*
* */
$(function(){
DWZ.init("dwz.frag.xml",
/////json对象
{
loginUrl:"login_dialog.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"}); // themeBase 相对于index页面的主题base路径
}
});
});
</script>
我们发现他调用了 DWZ.init这个函数....这个初始化函数就是我们刚刚所说的.. 他完整的定义如下:(我添加了注释)
/////////////////////////////////////////////////////////////DWZ的入口javascript 函数 init ////////////////////////////////////////////////////
init:function(pageFrag, options){
var op = $.extend(options); //在jQuery.extend进行合并 ....增加一些属性方法 并且返回options对象
this._set.loginUrl = op.loginUrl; //登陆url
this._set.loginTitle = op.loginTitle; //login title
this._set.debug = op.debug; //是否调试
$.extend(DWZ.pageInfo, op.pageInfo); ///整合信息到DWZ中 的 pageInfo中 因为这个键已经定义,,他会覆盖并添加 pageInfo这事 jQuery/的extend扩展

//调用jQuery的ajax提交 异步 xml 和 javascript 这里加载的是xml文件 .....
//通过ajax请求远程xml文件
jQuery.ajax({
type:'GET', //get请求
url:pageFrag, //请求url
dataType:'xml', //请求类型
timeout: 50000, //时间间隔
cache: false, //是否缓存
error: function(xhr){ //错误 处理函数
alert('Error loading XML document: ' + pageFrag + "\nHttp status: " + xhr.status + " " + xhr.statusText);
},
success: function(xml){ //成功处理函数.ajax成功会返回html代码..
$(xml).find("_PAGE_").each(function(){ //搜索每个_PAGE_元素 each遍历元素集合
var pageId = $(this).attr("id"); //获取每个xml元素的ID
if (pageId) DWZ.frag[pageId] = $(this).text(); //增加xml中的每个元素的内容到..frag 数组中...这个在DWZ空间中已经定义
});

$(xml).find("_MSG_").each(function(){ //同上MSG 代表的是弹出框提示的消息
var id = $(this).attr("id"); //返回当前元素ID
if (id) DWZ._msg[id] = $(this).text(); //增加内容到DWZ._msg 数组..DWZ空间应定义
});

if (jQuery.isFunction(op.callback)) op.callback(); //panduancallback是否是函数 如果是执行callback ...op是我们传递进来的
/*
这是html初始化内容
callback:function(){
initEnv();
$("#themeList").theme({themeBase:"themes"}); // themeBase 相对于index页面的主题base路径
} */
}
});
}
};
所以说我们在使用DWZ框架的时候一定要注意,添加初始化函数init...这是DWZ框架声明周期的起点.....
我么在使用DWZ框架前必须要做的是 利用script标签导入所需要的js库.
并且在随后的<scipr></script>中增加初始化init方法//////
这样我们才开始了DWZ框架使用的第一步。。
分享到:
评论

相关推荐

    DWZ富客户端框架dwz-ria-1.4.6

    DWZ富客户端框架dwz-ria-1.4.6,为你量身定做的,Web应用程序后台框架,非常漂亮,简单实用,不需要懂ajax,Jquery,就可以做出跟他们一样的效果喽

    dwz - 简单实用国产jQuery UI框架 - DWZ富客户端框架(jUI)

    dwz - 简单实用国产jQuery UI框架 - DWZ富客户端框架(jUI)

    dwz-demo-1.1.6-Final-2.rar_dwz_dwz demo_dwz-demo_dwz-ria_ria

    基于jQuery实现的Ajax RIA开源框架.设计目标是简单实用、扩展方便、快速开发、RIA思路、轻量级 基本可以保证程序员不董javascript, 也能使用各种页面组件和ajax技术

    DWZ富客户端框架v1.0.0(含源码)

    在线演示地址 http://html.duqn.com/dwz-demo/ Google Code下载: http://code.google.com/p/dwz 欢迎大家提出建议,我们将在下一版本中进一步调整和完善功能. DWZ富客户端框架, 开源了. 可在google code 中下载...

    DWZ富客户端框架v1.0.6(含源码)

    DWZ富客户端框架(jQuery RIA framework), 是中国人自己开发的基于jQuery实现的Ajax RIA开源框架. ...在线文档 http://dwz.duqn.com/doc/dwz-user-guide.pdf Google Code下载: http://code.google.com/p/dwz/

    dwz-demo-1.1.6RC1.zip_DEMO_dwz php_dwz-demo_dwz-ria_php dwz

    这是一款开源的 js框架系统 制作后台的朋友有福气了 学习很简单的 单击不凡试试看

    dwz_jui-1.5.0

    dwz_jui-1.5.0-20150337前端框架

    dwz4j-demo-

    dwz4j-demo-20111025

    DWZ框架1.4.4以及使用手册,入门指导

    DWZ框架dwz4j-springmvc dwz-ria-1.4.4 dwz-user-guide.swf DWZ框架使用的实例简单介绍.doc DWZ框架使用手册.pdf

    DWZ富客户端框架使用手册

    资源名称:DWZ富客户端框架使用手册资源目录:概述. 4 学习DWZ 的建议...... 4 DWZ 区别于其它 JS 框架,最大的优点 4 设计思路 .... 4 版权声明 .... 5 DWZ 研发组介绍 ....... 5 HTML 扩展...... 6 Ajax 链接扩展...

    dwz分页代码(php)绝对可用

    dwz分页代码(php)绝对可用,需自己定义数据库连接

    DWZ富客户端框架 - thinkphp 测试版

    DWZ富客户端框架 - thinkphp 测试版 在线演示地址 http://thinkphp.dwzjs.com 整合了DWZ富客户端框架、thinkphp和thinkphp RBAC权限管理 此版本是测试版,细节还需改进,欢迎大家提出建议

    dwz-user-guide.chm

    DWZ富客户端框架(jQuery RIA framework), 是中国人自己开发的基于jQuery实现的Ajax RIA开源框架. DWZ富客户端框架设计目标是简单实用、扩展方便、快速开发、RIA思路、轻量级 DWZ支持用html扩展的方式来代替...

    适合做网站后台的DWZ富客户端框架(jQuery RIA framework)

    DWZ富客户端框架设计目标是简单实用、扩展方便、快速开发、RIA思路、轻量级 DWZ支持用html扩展的方式来代替javascript代码, 基本可以保证程序员不董javascript, 也能使用各种页面组件和ajax技术. 如果有特定需求也...

    dwz用户使用手册.pdf

    DWZ富客户端框架(jQuery RIA framework), 是中国人自己开发的基于jQuery实现的Ajax RIA开源框架. DWZ富客户端框架设计目标是简单实用、扩展方便、快速开发。让开发人员不写javascript的情况下, 也能用ajax做项目和...

    dwz官方例子

    dwz官方例子 开发环境: 1) 数据库:mysql 请修改 src/hibernate_mysql.cfg.xml这个文件的数据库连接 创建数据库dwz4j 导入测试数据:db/dwz4j.sql mysql -u root -p dwz4j &lt; dwz4j.sql 2) JDK 1.6 3) 项目文件UTF-...

    DWZ富客户端框架docx

    DWZ富客户端框架设计目标是简单实用、扩展方便、快速开发、RIA思路、轻量级 DWZ支持用html扩展的方式来代替javascript代码, 基本可以保证程序员不董javascript, 也能使用各种页面组件和ajax技术. 如果有特定需求也...

    BS-90系列使用说明书DWZ002-1-1-SM-1.doc

    本说明书含有开箱检查、安全警告事项、产品的主要技术指标、工作原理、产品使用操作方法和常见故障处理等一系列内容。在编写过程中,我们已经尽力确保本说明书内容的全面性和准确性。如果用户在使用过程中有疑问,...

    DWZ短网址 v2.0 For SAE版

    2.DWZ适合有广告源的独立博客主们,为广告链接缩短,同时,统计广告效应. 3.DWZ适合拥有线下资源,特别是小型独立电商或者网店,进行产品推广,网址缩短的好处就不必说了. 4.DWZ适合做淘宝客等类似站点提供独立的短地址...

    DWZ富客户端框架v1.0.1(含源码)

    DWZ富客户端框架即jQuery富客户端框架.基于jQuery实现纯html+css+js富客户端UI组件框架. 布署到Apache或IIS等WEB应用下, 打开index.html就可看到demo. 在线演示地址 http://dwz.duqn.com Google Code下载: ...

Global site tag (gtag.js) - Google Analytics