SAP UI5 batch 请求的响应解析流程分析
batch 请求的回复:
使用合适的 handler 解析:
该 handler accept 字段:multipart/mixed
首先根据响应字段,获取 content-type:
content-type 字段,通过;
分隔:
media type:multipart/mixed
返回一个 JSON 对象,包含 mediaType 和 boundary 属性:
batch 请求的处理器是 batchParser
:
执行下一行 readBatch 方法:
boundary 的一个例子:batchresponse_16aba97e-4311-41a4-8c64-302727d1d02e
readBatch 的具体处理逻辑还是,基于字符串匹配,即使用 indexOf 查找 boundary 字符串:
readline 的实现就是读取单行:
batch 第一个 part 的头部字段被读取了出来:
media type 必须和硬编码的值一致:application/http
batch 包含的第一个请求 count 的数据已经读取成功了:
已经读取成功了,还要 dispatch:
count 的 media-type 是 text/plain:
return false 了,response 的 body 有值,data 为 undefined:
有4个可用的 handler:
text/plain 负责读取 response.body.
textParser 的逻辑最简单,直接返回 body 字段给 response.data:
读取第二个 part:
这个 part 的 content-type 为 json,因此使用 json handler:
if (handlerAccepts(handler, cType)) {var readContext = createReadWriteContext(cType, version, context, handler);readContext.response = response;response.data = parseCallback(handler, body, readContext);return response.data !== undefined;}
上述代码的语义是,只有当一个 handler 通过了函数 handlerAccepts
的过滤之后,才能调用 parseCallback,将解析的结果,传递给 response.data
.
json handler 使用 JSON.parse 原生 API 进行 json 数据的序列化操作。
序列化成功的 json 数据:
最后返回的 response 是一个数组:
调用最外层的 success handler:
batch 请求的回调函数,在函数 _submitBatchRequest
内部:
更多Jerry的原创文章,尽在:“汪子熙”:
SAP UI5 batch 请求的响应解析流程分析相关推荐
- SAP UI5 walkthrough第一第二部分解析:data-sap-ui-libs=“sap.ui.commons,sap.ui.table“
Created by Wang, Jerry, last modified on Nov 02, 2015
- SAP UI5 应用开发教程之三十三 - SAP UI5 应用的响应式布局特性(Responsiveness)试读版
一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...
- 应用服务器与WSGI协议以及flask后端框架总结(后端接收请求返回响应的整个流程)...
上次遗留了两个问题,先说一下自己的看法 问题: 1.明明一个线程只能处理一个请求,那么栈里的元素永远是在栈顶,那为什么需要用栈这个结构?用普通变量不行吗. 2._request_ctx_stack和_ ...
- SAP UI5 应用开发教程之六十二 - 基于 OData V4 的 SAP UI5 表格控件使用方法介绍试读版
一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...
- 使用自开发的代理服务器解决 SAP UI5 FileUploader 上传文件时遇到的跨域访问错误试读版
一套适合 SAP UI5 初学者循序渐进的学习教程 作者简介 Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今.Jerry 是 SAP 社区导师,S ...
- 如何在 SAP UI5 应用里显示 PDF 文件试读版
一套适合 SAP UI5 初学者循序渐进的学习教程 本专栏计划的文章数在 300 篇左右,到 2022年12月23日为止,目前已经更新了 155 篇,专栏完成度为 51.6%,完成度已经超过了一半了. ...
- 使用 SAP UI5 Smart Chart 控件轻松绘制十数种不同类型的专业图表试读版
一套适合 SAP UI5 初学者循序渐进的学习教程 本专栏计划的文章数在 300 篇左右,到 2022年11月19日为止,目前已经更新了 149 篇,专栏完成度为 49.6%. 作者简介 Jerry ...
- SAP UI5 SimpleForm 里在水平方向显示多组 Form 元素的实现方法试读版
一套适合 SAP UI5 初学者循序渐进的学习教程 本专栏计划的文章数在 300 篇左右,到 2022年9月22日为止,目前已经更新了 133 篇,专栏完成度为 44.3%. 作者简介 Jerry W ...
- SAP UI5 Simple Form 属性 columnsL,columnsM,columnsXL 的属性深入剖析试读版
一套适合 SAP UI5 初学者循序渐进的学习教程 本专栏计划的文章数在 300 篇左右,到 2022年9月22日为止,目前已经更新了 133 篇,专栏完成度为 44.3%. 作者简介 Jerry W ...
最新文章
- 服务端如何识别是selenium在访问以及解决方案参考二
- css学习任务二:切图写代码
- JSP文件管理后门工具jsp-file-browser
- 【ASP.NET】js动态生成的控件,在后台获取不到怎么办?
- 04 javascirpt基础知识---听课笔记
- JVM发生频繁 CMS GC,罪魁祸首是这个参数!
- 数字证书原理分析总结
- 简述Intel的MESI缓存一致性协议
- Java——类的继承
- Spark稀疏向量和稠密向量
- 文件服务器 标签,别再「新建文件夹」了,这个标签管理器可以让你的硬盘更整洁...
- win7怎么把计算机放到桌面6,手机投屏到电脑win7最简单具体操作步骤
- openerp QWeb
- 技术分享 | 开发板网口热插拔自动获取IP地址
- Xposed学习笔记之蚂蚁森林能量自动收取模块
- 基于select2的二级联动
- Linux快捷键大全
- CMD控制台(命令提示符)的打开方式
- python 导入模型_scikit-learn系列之如何存储和导入机器学习模型
- 电脑桌面图标变成白色图标如何处理
热门文章
- iview地区加载_LoadingBar 加载进度条
- android builder模式,模式设计(三:Builder模式) (转)
- 脚本监控网络状态,输出日志并归档(V2)
- 【知云】第十二期:处于风口浪尖上的直播视频网站,如何快速部署直播监管?...
- 团队项目—每日记录2
- Jquery ajax提交表单几种方法详解
- Android的配置界面PreferenceActivity
- PHP5魔术函数与魔术常量
- Ubuntu中设置环境变量PATH
- 常用正则表达式大全——包括校验数字、字符、一些特殊的需求