登录
注册
关于我们
简体中文
ENGLISH
搜索
购物车
0 ITEMS ON YOUR CART
首页
动态
方案
案例
专栏
期刊
联系我们
首页
期刊
Ext JS 模拟后端数据实现
Ext JS开发大全
第1章 Ext JS快速入门示例[4/4]
第12章[12.10]富文本编辑器 CKEditor与Ext JS的整合
第12章[12.10.1] Ext JS + CKEditor+Spring Boot 实现编辑器图片上传
第11章[11.6] Ext JS 自行搭建远端库的包升级版本后找不到的问题解决
[Ext JS 4] 实战之Grid, Tree Gird编辑
ext命令集
第12章[12.3] Ext JSGrid中的超链接列及其功能实现
[Ext JS]textfield添加compositionstart、compositionupdate 和compositionend _os
[Ext JS ] 动添切换字段的必填与非必填
3.1 Ext JS 组件总览
[Ext JS] Grid表格批量编辑的实现
Ext JS 快速开发工具
带触发器按钮的输入框
Ext JS的布尔对象类型处理及便捷方法
Ext JS的Object类型处理及便捷方法
ExtJS RadioGroup(单选按钮组) 使用及注意事项
Ext JS 模拟后端数据实现
ToolTip 实现全介绍
Ext JS下拉单选框(Combobox,TagFied)使用及疑难问题解决
Ext JS应用测试概览
Sencha Studio 监视工具( Inspect Tool)
Ext JS 4 升级指南
Ext JS 如何定义公用方法(单例类 or 静态方法)
Ext JS的模块化开发(Package)
Ext3 -- Form 实例。 用来migrate file 数据到DB用的
ExtJS 3 在Tab下加入Form 实例
Extjs Grid 中给已经添加过Filter的列增加标识
Extjs 实战之 Ext.tree.TreePanel Tree无法显示
Extjs弹出框的异步执行
Grid 动态该表列( reconfigure)的性能改善
Spring Boot Ext JS准前后端框架应用的会话(Session)处理
[Ext JS 4] Extjs 图表 Legend(图例)的分行与分列显示
[Ext JS 4] Extjs 之 initComponent 和 constructor的区别
[Ext JS 4] Grid 中的单元格添加Tooltip 的效果
[Ext JS 4] Grid 实战之分页功能
[Ext JS 4] Grid 组件
[Ext JS 4] MVC 应用程序框架
[Ext JS 4] MVC 应用程序框架
发布 [Ext JS 4] contentEL,renderTo, applyTo 释义与区别
[Ext JS 4] 动态加载
[Ext JS 4] 实战之 ComboBox 和 DateField (消失之解决办法)
[Ext JS 4] 实战之 Picker 和 Picker Field
[Ext JS 4] 实战之 带week(星期)的日期选择控件(二)
[Ext JS 4] 实战之 ComboBox 和 DateField 的点击事件在IE下失效
## [Ext JS 4] 实战之 带week(星期)的日期选择控件(三)
[Ext JS 4] 实战之 带week(星期)的日期选择控件
[Ext JS 4] 实战之Chart 坐标控制(单坐标,双坐标)
[Ext JS 4] 实战之Chart, Column Chart 定制颜色
[Ext JS 4] 实战之Grid, Tree Gird 动态添加列
[Ext JS 4] 实战之Grid, Tree Gird 动态添加列续(性能考虑)
[Ext JS 4] 实战之Grid, Tree Gird 动态添加行
[Ext JS 4] 实战之Grid, Tree Gird 添加按钮列
[Ext JS 4] 实战之Grid, Tree Gird编辑Cell
[Ext JS 4] 实战之Load Mask - 在Grid Reconfigure的使用状况
[Ext JS 4] 实战之Load Mask(加载遮罩)的显示与隐藏
[Ext JS 4] 实战之多选下拉单 (带checkbox) 续 - 带ALL 选项
[Ext JS 4] 实战之多选下拉单 (带checkbox)
[Ext JS 4] 实战之升级系列一[Ext jS 3-->Ext JS 4]
[Ext JS 4] 实战之将chart导出为png, jpg 格式的文件
[Ext JS 4] 实战之浏览器兼容
[Ext JS 4] 布局之实战二 - 中间区块不会自动伸展 (tab)续
[Ext JS 4] 组件之图表
[Ext JS 4]后台自动产生图档
[Ext JS 4]性能优化
[Ext JS 7 ]7.5 自适应配置 - Responsive Configs
[Ext JS 7] 关联(Association)
[Ext JS 7]事件(Event)
[Ext JS 7]ClassRequire错误解决
[Ext JS 7]的开发模式
[Ext JS 7]基于NPM的开发
[Ext JS ] 动添切换字段的必填与非必填
[Ext JS4] 数据包
[Ext JS4系列]Ext JS4 入门
[Ext JS6] Grid不同列的关联编辑
[Ext JS6] ViewControllers-视图控制器
[Ext JS6]Ext.Template
[Ext JS6]Sencha Cmd
[Ext JS6]编码规范
[Ext JS6]多类型设备开发
[Ext JS6]工作区-Workspace
[Ext JS6]路由(Routing)及使用
[Ext JS6]视图模型和数据绑定
[Ext JS6实战] Ajax获取Tree Store
[Ext JS6实战] Ext.XTemplate
[Ext JS6实战]动态数据绑定
[Ext JS] Sencha Cmd命令参考之二
[Ext JS] Sencha Cmd命令参考之一
[Ext JS] Group Grid-分组网格
[Ext JS] Group Grid-分组网格
[Ext JS]嵌套Grid的实现及注意事项
[Ext JS]SimXhr.js__dc=1659315492151_65 Uncaught TypeError问题分析与解决
[Ext JS]Sencha Studio安装与快速介绍之一
[Ext JS]textfield 添加 compositionstart、compositionupdate 和 compositionend
[Ext JS]图片显示方式
[ExtJS 6]Grid分页工具栏无效问题解决
[ExtJS6]ResponsiveColumn-自适应列布局
[Extjs 4] 类系统
基于Ext JS的模块化应用框架搭建及开发
[Ext JS] 自行搭建远端库的包升级版本后找不到的问题解决-The following versions are available
[Ext JS]鼠标移入移除时弹出和关闭窗口
[Ext JS]富文本编辑器 CKEditor与Ext JS的整合
[Ext JS]可编辑列Grid的全场景开发
['Ext JS]Grid中的超链接列及其功能实现
[Ext JS]Ext JS + CKEditor+Spring Boot 实现编辑器图片上传
[Ext JS]介绍与快速入门1
[Ext JS]实现带动态数字的图标
Spring Boot+Ext JS 实现图形验证码
Ext JS介绍与快速入门2
Ext JS开发基本环境准备与项目创建
[Ext JS]开发模式及快速测试方式
[Ext JS]多类型终端-电脑、移动端(手机、平板)
[Ext JS]基于Ext JS的MVC/MVVM架构的应用开发模式
[Ext JS]Ext JS的类与类体系
[Ext JS]Ext JS组件、容器与布局
[Ext JS]组件与容器的选择与开发
[Ext JS]Ext JS数据模型与数据封装
[Ext JS]Ext JS的控制器类型及使用
[Ext JS]说透Ext JS的窗口及对话框用法
[Ext JS]说透Ext JS的窗口及对话框用法
[Ext js]Grid行选择的多种场景和实现方式
[Ext JS]Ext JS类的继承与混合
CmsWing
Ext JS 模拟后端数据实现
## Ext JS 模拟后端数据实现 在实际的Ext JS应用中, Store的数据大部分应该是从后端读取, 也就是通过Ajax 的Proxy 获取, 但是在应用开发的初期, 特别是在前后端分离的框架中, 前端可能先需要开发一些页面进行显示;此外, 在对Ext JS 的功能和组件进行教学时, 也可能需要有一些数据进行展示。 基于上述的这些目的,自然就出现了这样的需求: 是否可以使用模拟的数据? 答案当然是肯定的, 而且实现方式也不止一种。 ### 模拟数据的实现方式 这里介绍两种方式: Ext JS提供的模拟数据管理器 Ext.ux.ajax.SimManager 使用json文件返回数据。 ### 1. 使用Ext.ux.ajax.SimManager 模拟后端数据 Ext.ux.ajax.SimManager 是用来管理模拟Ajax响应的单例类。从类的命名空间可以看到, 这个类不是核心包中, 而是在ux 中的。所以, 要使用这个功能, 就需要在 app.json 引入ux扩展模块。 ```javascript "requires": [ "ux" ], ``` 导入ux扩展包的配置界面如下图所示: 使用Ext.ux.ajax.SimManager 可以实现Ajax请求就在毫无察觉的状况下由模拟器处理(simlets), 这个功能是在使用Ext.data.Connection 方法的钩子实现的, 所以Ext.data.Connection类的所有子类(比如Ext.Ajax)都可以使用。 数据模拟器的初始化方式 数据模拟器的初始方式就是调用Ext.ux.ajax.SimManager的init() 方法注册一个simlet的示例。 simlet是simulated servers的简写, 也就是模拟服务器。 这里初始化一个模拟服务器 , 并且注册一个 /app/data/user 的模拟地址, 初始化的示例代码如下: ```javascript Ext.onReady(function () { initAjaxSim(); // normal stuff }); function initAjaxSim () { Ext.ux.ajax.SimManager.init({ delay: 300 }).register({ '/app/data/user': { type: 'json', // 使用JsonSimlet data: [ { foo: 42, bar: 'abc' }, ... ] } }); } ``` 这里定义了一个 initAjaxSim() 函数 ,在Ext.onReady() 里面进行调用。在基于Ext JS 的单页面应用中, 也可以在Application.js 的launch 中函数中定义, 类似: ```javascript launch: function() { //alert('launch'); Ext.ux.ajax.SimManager.init({ delay: 300 }).register({ ``` 模拟例外配置 模拟的配置是整个应用配置的, 如果某个请求需要实际的地址, 也就是不需要模拟怎么处理呢? 处理方式是 加上配置 nosim: true 。示例代码类似: ```javascript Ext.Ajax.request({ url: 'myurl/xx', nosim: true, // params: { id: 1 }, success: function(response){ var text = response.responseText; // process server response here } }); ``` 模拟相关类 Ext.ux.ajax.SimManager , 模拟器单例类 Ext.ux.ajax.Simlet , 模拟服务的父类 Ext.ux.ajax.JsonSimlet , JSON格式的模拟 Ext.ux.ajax.DataSimlet 一般数据的模拟,支持排序、过滤、分组 Ext.ux.ajax.SimXhr , 模拟 XMLHttpRequest 对象的方法和属性,但由提供数据的 Ext.ux.ajax.Simlet 实例支持。 Ext.ux.ajax.PivotSimlet ,远程枢轴计算。 注意过滤数据透视结果不起作用。 Ext.ux.ajax.XmlSimlet , XML格式数据模拟 ### 2. 使用json文件返回数据。 因为Sencha CMD 内置了一个Web服务器,在开发阶段, 使用 sencha app watch 就可以启动服务器, 默认的端口是1841, 基于此, 在项目中的文件,就是就可以使用 http://localhost:1841/xxx的方式进行访问。 所以, 在项目中定义一些JSON 格式的数据文件, 就可以用来作为数据源, 比如, Store 的定义如下: ```javascript Ext.define('ExtjsdevEncy.store.chp03.RemoteTreeStore', { extend: 'Ext.data.TreeStore', alias: 'store.remoteTreeStore', autoLoad:true, proxy:{ type: 'ajax',//不可少 url:'app/data/treedata.json' }}); ``` /app/data 目录 是笔者推荐存放JSON文件的路径。 文件的命名和请求的命名尽量保持一致或者对应,比如请求地址是 /users, 则文件名是 users.json , 这样的话, url 的地址配置为 /app/data/users.json 就可以了。 相比 Ext.ux.ajax.SimManager,这种方式对于模拟请求比较多的场景比较适用, 因为全部写在Ext.ux.ajax.SimManager, 查看和管理起来不是很方便。 ### 模拟与真实的切换 以上两种方式进行模拟,对于真实项目来说, 都是有一些应用场景的, 在项目开发的最后, 还是要回到真实的数据, 所以就需要切换到真实的地址。 对于Ext.ux.ajax.SimManager ,可以直接注释掉相关的模拟代码 对于方式2, 则可以写一个获取URL 的公用方法, 在应用或者请求层级配置一个开关的参数进行切换。
网站导航
首页
动态
方案
案例
专栏
期刊
联系我们