# docs **Repository Path**: wxl0209/docs ## Basic Information - **Project Name**: docs - **Description**: No description available - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-06-27 - **Last Updated**: 2021-03-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # json-view #### 开发缘由 (2016-06月) - 这里是列表文本大多数web应用中,其服务器保存的数据绝大多数是不变的;用户请求同一个url,很大可能都会是同一份数据,不仅消耗网络资源,给服务器带来不必要的压力,同时随着网络的不稳定,会在视觉上给用户以一种服务缓慢的现象。因此,将有效数据在客户端持久存储,并加上过期时间,可以有效解决以上问题。 - 2、在2014到2016年代,前后端分离,前端开发好页面模板后交付给后端,由后端通过JSP渲染模板或通过 ajax 获取数据后拼接模板再插入到页面中,如此一来,大量的开发工作将用于数据和模板的拼接,再渲染到页面上,不仅代码乱,难调试,效率也极其低下。 #### 功能说明 该库是json数据渲染及缓存方案,将请求的所有json数据持久存储(存储时间取决于服务器一并返回的有效时间,以秒为单位),渲染页面时,将数据自动绑定到页面对应的元素中。 #### 现存问题 本项目由原生js编写,非常欠缺扩展性和规划设计。仅支持数据绑定,无法编辑绑定逻辑,绑定动作功能有限,好在博客系统页面数据不多,功能并不复杂,凑合可以用。 #### 文件说明 jsonview-core.js是json数据渲染的核心库. jsonview-app.js是提供用户使用的通过ajax请求json数据的对外函数,有且仅有一个用于请求json数据的函数 #### 客户端使用说明 在页面中引入以上两个js文件 在html元素上标记标签,进而可实现json数据的自动化渲染 #### 标签说明,共由最初的4个标签扩展到7个标签 1. JsonView: 在元素的class上定义,该库以此标记用于处理需要渲染的html元素,如
{user.name}
2. 这里是列表文本scope:在标记JsonView的元素上使用,该标记将绑定本次请求及返回的数据,并自动化渲染填充json数据。 * 绑定函数是jsonview-app.js中提供的函数 sendJsonRequest,其中第四个参数definescope,即绑定本次请求及返回数据的入口。 * sendJsonRequest 请求的数据,会根据html元素上同样标记scope的值来进行渲染。需要注意的是,当这个参数为空时,将以from标记作为绑定,若from标记为不存在,最终会以此请求路径(包括请求参数)作为本次数据的绑定。同一个请求,不同的请求参数,往往返回的数据不尽相同,因此需要客户端自己定义scope值,以便能引用到已经存储的json数据。 3. from: 该标记用于说明数据已经在客户端,本库会以其定义的值作为解析入口,去查找绑定的json数据,对其渲染,from标签如果没有定义scope,则会默认加上scope 例如: ```