因为项目需要和自己的兴趣,几个月前结合模板解析神速的ArtTemplate,自己写了个框架取名JData,多多指教啊~~~因为一直没时间写文档,为了能够更方便地使用和避免我把代码忘了,今天抽空把文档写了。

  项目已经在github上了,地址为https://github.com/Hi-Rube/taskOops/blob/master/Public/Static/js/public/jdata.js 请多多指教。

  ArtTemplate模板的用法参见https://github.com/aui/artTemplate

  

 JData

  高效的前端数据处理框架

  版本号 v1.0.3

  JData是一个高效的前端数据处理框架,通过结合ArtTemplate模板引擎,提供了模板解析,模板数据加载,Ajax数据加载(支持数据格式现只有JSON),三种方式的ajax服务器数据请求,数据的局部刷新,数据的全局刷新,页面图片预加载(包括自定义过渡效果)等功能。

  快速向导

  

一.使用框架 

<script src="jdata.js"></script>

二.模板的编写

使用一个type="text/html"script标签存放模板:

<script id="test" type="text/html">
  <%JD for (i=1; i<=1; i++){%>
  <a ad=<%JD=love.url%>><%JD= dong%></a> </br>
  <%JD }%>
</script>

模板逻辑语法开始与结束的界定符号为<%JD 与%>,若<%JD后面紧跟=号则输出变量内容。每个模板有一个ID,用来标识模板。

 

三.数据的加载

数据的加载默认为加载<jd>标签里的数据,当然<jd>标签里面的数据需要是JSON格式的才能被解析加载

eg:php

<jd><?php echo $this->Data; ?></jd>

<jd>{"dong":123}</jd>

好,现在把数据加到模板中去然后解析,步骤很简单。

<script src="jdata.js"></script>
<script type="text/javascript">
JData();
//如果加载的不是默认jd标签里面的数据,如果是Rube标签里面的数据则
//JData("Rube"); 这样就可以了
</script>

四.模板的渲染

模板的渲染分为两种方式,一种为全局渲染,一种为指定模板ID的局部渲染。

a. 全局渲染,第三部分数据加载中JData() 这样默认是全局渲染的,即<jd></jd>中的数据将运用到每个模板中。JData提供了独立的方法来进行全局渲染。

JData.refreshAll(method,data,callback);

参数说明:

method:全局渲染的方式,默认为在原来模板的数据后面添加数据,method=0 or method='replace' 为替换当前模板中的数据 , method=-1 or method='before' 为在原来模板的数据前面添加数据。method!=-1 or 0 即为采用默认的数据替换方式。

data:为要向模板内添加的数据,如果data=null or data=undefined 那么 模板内添加的数据默认为JData.data中的数据。JData.data中的数据最开始就为<jd></jd>中的数据,当然你可以进行修改,修改了之后加载的就是你修改后的数据了,不再是最开始的<jd></jd>中的数据。

当然你可以将data不设为null,将它改为自己想要载入的数据,那么你可以带入两种数据类型,第一种为JSON格式的字符串,第二种为一个对象,注意如果你用全局刷新的方式且data参数不为null  那么当前JData.data中的数据就会变成data

 if (typeof Tag==='object'){
//带入参数,修改JData.data的数据刷新
var data=Tag;
if (part==0)
global.JData.data=data;
}

callback:执行完后的回调函数

b.局部渲染,将对指定ID的模板进行数据载入和模板刷新。

JData.refreshPart(ID,method,data,callback);

参数说明:

ID:指定模板的ID。

method:这个与全局渲染的method一样。

data:这个与全局渲染的data一样。但是他如果data不为null那么JData.data的数据不会改变。

c.指定多个模板的渲染,这个是接下来要改进的,现在还没有实现这个功能,指定多个模板渲染指原来的局部渲染我们是使用ID 就是只刷新一个模板,指定多个模板渲染呢就是多个指定的模板使用同一个数据进行刷新。

 JData.getData();

这个方法可以获取JData.data的一个深拷贝(摆脱了引用关系)。

使用方法举例:

<script type="text/javascript">
var data=JData.getData();
data.dong=123; //局部改变当前的全局数据
JData.refreshAll(1,data,function(){
alert("successful!");
}); //JData.data的dong属性将被改变
</script>

 

五.页面的预加载

 JData.TF();

定义了页面预加载到页面跳转之间执行的语句和效果。

JData初始化时将对所有有ad属性的<a>标签 进行点击监听,ad属性的属性值为跳转的地址。当<a>标签被点击后,将预加载ad的地址内容,并且调用TF方法,加载完后将自动跳转到指定地址。

对于前端用户体验的优化还需大家多提供提供意见,我在JData接下来的几个版本里我将会陆续增加一些功能。

六.Ajax数据加载

JData.getAjaxData(options,beforeFun,afterFun); 

参数说明:

options: options是一个对象,他的属性配置如下

options.async : 进行ajax请求的方式,async=false 为同步 async=true为异步

options.type : 进行请求的方式 参数类型为字符串,现支持四种方式text,json,jsonp,script 默认使用json方式。json方式即为普通的Ajax请求JSON数据,以对象形式返回。jsonp方式详见百度,script方式为创建一个script标签进行加载。text方式也为普通的Ajax请求,请求数据为文本格式,以文本形式返回。

options.url : 请求地址。

options.method : 请求的方式GET or POST

options.parse : 请求的参数 eg: a=1&b=2&w=sss

beforeFun:ajax请求发送前执行的内容;

afterFun(error,content):ajax请求返回数据后执行的内容,其中error为错误信息,content为返回的内容,注意的是在jsonp方式请求中,afterFun为一个字符串,即为回调函数的名称

JData的介绍就到这里,欢迎批评和指导~~

  

JData 整合ArtTemplate的前端框架的更多相关文章

  1. 整合X-Admin前端框架改造ABP

    “站在巨人的肩膀上”,这样一来,不要万事亲恭,在值得的方向上节约时间,毕竟人生就这么一次.在接触ABP以来,一直想花点时间整合LayUI前端框架到ABP中,进而能够逐渐打磨出一套适合自己的框架,开发习 ...

  2. Web前端,HTML5开发,前端资源,前端网址,前端博客,前端框架整理 - 转改

    Web前端/H5开发,前端资源,前端网址,前端博客,前端框架整理 综合类 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end Stack v ...

  3. 10大H5前端框架

    作为一名做为在前端死缠烂打6年并且懒到不行的攻城士,这几年我还是阅过很多同门从知名到很知名的各种前端框架,本来想拿15-20个框架来分享一下,但在跟几个前辈讨教写文章的技巧时果断被无情的打击了,所以这 ...

  4. 10大html5前端框架

    Bootstrap 首先说 Bootstrap,估计你也猜到会先说或者一定会有这个( 呵呵了 ),这是说明它的强大之处,拥有框架一壁江山的势气.自己刚入道的时候本着代码任何一个字母都得自己敲出来挡我者 ...

  5. b2c项目基础架构分析(二)前端框架 以及补漏的第一篇名词解释

    继续上篇,上篇里忘记了也很重要的前端部分,今天的网站基本上是以一个启示页,然后少量的整页切换,大量的浏览器后台调用web服务局部.动态更新页面显示状态这种方式在运作的,从若干年前简单的ajax流行起来 ...

  6. H5前端框架推荐合集

    Ionic ionic 吧开发流程都帮你做好了,已经不再是单纯的UI框架,而是开发框架了,非常适合快速开发.基于angular2,丰富的UI组件,大大改进的编程模型, Semantic UI 中文官网 ...

  7. 一款简单而不失强大的前端框架——【Vue.js的详细入门教程①】

    ↓— Vue.js框架魅力 —↓ 前言       Vue.js 是一个构建数据驱动的 web 界面的渐进式框架.Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件.V ...

  8. 10大H5前端框架,让你开发不愁

    ![](http://upload-images.jianshu.io/upload_images/8373224-7903a1466f7b9722?imageMogr2/auto-orient/st ...

  9. vue 前端框架

    什么是vue.js 1.vue是目前最火的一个前端框架,react 是最流行的前端框架(react除了开发网站,还可以开发手机APP,vue语法也是可以进行手机app开发的,需要借助于weex) 2. ...

随机推荐

  1. Django初识二

    1,在django中用于提交的form表单中的三要素: 1.1>form标签要有action和method,上传文件需要额外指定的enctype 1.2>获取用户输入的标签要有name属性 ...

  2. Koa2学习(九)与mongoDB交互

    Koa2学习(九)与mongoDB交互 数据库下载与安装 windows下载地址:http://dl.mongodb.org/dl/win32/x86_64 linux下载地址:https://www ...

  3. 60年代进程 80年代线程 IPC How the Java Virtual Machine (JVM) Works

    小结: 1. To facilitate communication between processes, most operating systems support Inter Process C ...

  4. POJ3468 A Simple Problem with Integers —— 线段树 区间修改

    题目链接:https://vjudge.net/problem/POJ-3468 You have N integers, A1, A2, ... , AN. You need to deal wit ...

  5. lucene DocValues——本质是为通过docID查找某field的值 看图

    Why DocValues? The standard way that Solr builds the index is with an inverted index. This style bui ...

  6. Java 并发 —— 读写锁(ReadWriteLock)

    读写锁(ReadWriteLock),顾名思义,就是在读写某文件时,对该文件上锁. 1. ReentrantReadWriteLock 三部曲: 加锁: 读写操作: 解锁:(为保证解锁操作一定执行,通 ...

  7. BZOJ_2099_[Usaco2010 Dec]Letter 恐吓信_后缀自动机+贪心

    BZOJ_2099_[Usaco2010 Dec]Letter 恐吓信_后缀自动机 Description FJ刚刚和邻居发生了一场可怕的争吵,他咽不下这口气,决定佚名发给他的邻居 一封脏话连篇的信. ...

  8. ['1' for i in range(4)]

    ' for i in range(4)]) 结果: [']

  9. 记重大失误(SQLserver数据回滚)ApexSQL

    敲了一天代码,脑壳昏,更改数据时忘记加where条件,该数据库又未备份.修改了1800条数据..当时那个着急啊. 各种找解决方法,最后使用ApexSQL Log  完美解决.赞一个 ApexSQL L ...

  10. 【190】修改 PowerShell & CMD 显示字体

    方法一:Windows7更改替换cmd(powershell)字体完全方法教程 说明:该方法将字体修改成只能显示英文,对于某些中文会乱码!(chcp 850) 方法二:添加中文字体(chcp 936) ...