CN108334322A - 一种mvc框架的数据请求方法及系统 - Google Patents
一种mvc框架的数据请求方法及系统 Download PDFInfo
- Publication number
- CN108334322A CN108334322A CN201711489175.3A CN201711489175A CN108334322A CN 108334322 A CN108334322 A CN 108334322A CN 201711489175 A CN201711489175 A CN 201711489175A CN 108334322 A CN108334322 A CN 108334322A
- Authority
- CN
- China
- Prior art keywords
- request
- class
- data
- processor
- mvc
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/72—Code refactoring
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种MVC框架的数据请求方法及系统,所述方法包括:在MVC框架中的模型层构建一个请求类;其中所述请求类用于将请求到的数据封装成目标格式;接收网络访问请求,在控制器中调用所述请求类,回调请求结果;当所述请求结果为成功时,在视图中显示被封装成目标格式的数据。本发明提供的方法,将数据的处理逻辑放在模型层,假如有其它控制器需要调用,也能很快速得到数据,避免在控制器层中代码过多且重复。
Description
技术领域
本发明涉及计算机技术领域,更具体地,涉及一种MVC框架的数据请求方法及系统。
背景技术
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
在传统的MVC结构中,数据层在发生改变之后会通知视图层进行对应的处理,视图层能直接访问数据层。但在iOS中,M和V之间禁止通信,必须由C控制器层来协调M和V之间的变化。
目前,由于前端开发兴起时间较短,大部分开发者对前端开发的理解停留在较陈旧模式中,使得前端开发代码管理逻辑混乱,不易维护和重构,增加了开发成本,从而造成了开发的应用程序刷新效率和数据存储性能较低,导致应用程序的用户体验不够好。
发明内容
本发明针对现有技术中存在的不足,提供一种MVC框架的数据请求方法及系统。
根据本发明的第一方面,提供一种MVC框架的数据请求方法,包括:
S1,在MVC框架中的模型层构建一个请求类;其中所述请求类用于将请求到的数据封装成目标格式;
S2,接收网络访问请求,在控制器中调用所述请求类,回调请求结果;
S3,当所述请求结果为成功时,在视图中显示被封装成目标格式的数据。
其中,所述步骤S3之后还包括:当所述请求结果为失败时,在视图中显示网络请求失败的提示。
其中,所述网络访问请求内容包括:请求地址、枚举类型、请求参数、编码类型、头部信息、缓存策略和请求回调结果。
其中,所述步骤S1之后还包括:构建第一单例类,用于设置所述请求类需要的头部参数。
其中,所述头部参数包括:必要参数信息和可选参数信息。
其中,所述可选参数信息包括:系统语言、设备类型、应用版本、屏幕高度和屏幕宽度中的一种或多种。
其中,所述步骤S1之后还包括:构建第二单例类,用于设置所述请求的缓存策略。
其中,所述缓存策略至少包括缓存时长。
根据本发明的第二方面,提供一种MVC框架的数据请求系统,包括:
请求类构建单元,用于在MVC框架中的模型层构建一个请求类;其中所述请求类用于将请求到的数据封装成目标格式;
请求接收单元,用于接收网络访问请求,在控制器中调用所述请求类,回调请求结果;
反馈单元,用于当所述请求结果为成功时,在视图中显示被封装成目标格式的数据。
根据本发明的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行上述第一方面的各种可能的实现方式所提供的方法。
根据本发明的第四方面,提供一种MVC框架的数据请求设备,包括:
至少一个处理器;以及
与所述处理器连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如下操作:在MVC框架中的模型层构建一个请求类;其中所述请求类用于将请求到的数据封装成目标格式;接收网络访问请求,在控制器中调用所述请求类,回调请求结果;当所述请求结果为成功时,在视图中显示被封装成目标格式的数据。
本发明提供的方法,将数据的处理逻辑放在模型层,假如有其它控制器需要调用,也能很快速得到数据,避免在控制器层中代码过多且重复。
附图说明
图1为本发明一实施例提供的一种基于swift语言的MVC框架数据请求方法的流程图;
图2为本发明另一实施例提供的一种MVC框架的数据请求系统的结构图;
图3为本发明另一实施例提供的一种MVC框架的数据请求设备的结构图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
参考图1,图1为本发明一实施例提供的一种基于swift语言的MVC框架数据请求方法的流程图,所述方法包括:
S1,在MVC框架中的模型层构建一个请求类;其中所述请求类用于将请求到的数据封装成目标格式。
S2,接收网络访问请求,在控制器中调用所述请求类,回调请求结果;
S3,当所述请求结果为成功时,在视图中显示被封装成目标格式的数据
具体的,以网络交易平台中获取交易记录为例,首先构建一个TradeRequestModel的类,在这个类中进行网络请求,将请求到数据封装成我们想要的格式。在MVC框架的制器中(Controller)中,调用该类的实例方法,用iOS中常用的block方式回调到请求结果,其中包含一个成功的completeBlock和一个失败的failedBlock,在控制器中,假如completeBlock触发,即所述请求结果为成功的时候,将请求到的数据在视图层进行展示。
建立这个请求类的好处是将数据的处理逻辑放在模型层,假如有其它控制器需要调用,也能很快速得到数据,避免在控制器层中代码过多且重复。
在上述实施例的基础上,所述步骤S3之后还包括:当所述请求结果为失败时,在视图中显示网络请求失败的提示。
具体的,当failedBlock触发,则说明请求数据失败,发出网络请求失败的提示再显示层中显示。
在上述实施例的基础上,所述网络访问请求内容包括:请求地址、枚举类型、请求参数、编码类型、头部信息、缓存策略和请求回调结果。
具体的,在一个请求方法中,需要请求的内容可以自定义,其中,请求内容可以包括:urlString:请求地址、httpMethod:枚举类型,传请求类型、parameters:请求参数、encoding:编码类型、headers:头部信息、cachePolicy:缓存策略、success:请求成功返回的信息和failure:请求失败返回的信息。
在上述实施例的基础上,所述步骤S1之后还包括:构建第一单例类,用于设置所述请求类需要的头部参数。
其中,所述头部参数包括:必要参数信息和可选参数信息。
其中,所述可选参数信息包括:系统语言、设备类型、应用版本、屏幕高度和屏幕宽度中的一种或多种。
具体的,新增了一个单例类,名字叫HTTPClient,在建立的TradeRequestModel类中,定义了一个方法,名字叫getTradeRecordListForCommand,在该方法中,使用HTTPClient.shared这个单例方法得到HTTPClient的一个对象,然后该对象调用request方法,方法中依次传递HTTP请求需要的URL地址和参数,还有请求方式。在该实施例中,整个网络访问请求类型为get。在其他类型的网络访问请求中,例如post请求,也可以应用同样的方法。在单例类HTTPClient中的头部信息可以理解为一个通用头,每次发送网络请求的时候,都带上此头部信息,这些头部参数信息中,又分为两类,第一类是每次请求的时候必须要传的参数信息,比如responseSerializer即为指定请求能够接收的内容类型,如application/json″,″text/json″,″text/javascript″,″application/x-protobuf″等;或者指定请求提交内容类型″Content-Type″:″application/x-www-form-urlencoded″。
第二类是被必要的头部参数信息,例如在一个软件有6个接口,需要客户端传当前用户手机系统语言给服务端,用来判断返回是需要日文内容还是中文内容,这时候因为接口要这个字段比较频繁,后面新增接口也可能会用到,通用性比较高,因此定义一个systemLanguage字段,将用户系统中当前语言放入http头部,方便服务器收到请求后,随时能取得到用户的语言信息。在所述头部参数信息中可选参数信息包括系统语言、设备类型、应用版本、屏幕高度和屏幕宽度中的一种或多种。可选头部信息可以根据请求的数据类型和请求的设备状况进行选择,使得请求到的数据可以完整的在视图层上进行显示。
在上述实施例的基础上,所述步骤S1之后还包括:构建第二单例类,用于设置所述请求的缓存策略。其中,所述缓存策略至少包括缓存时长。
具体的,构建单例类CachePolicy,用来处理是否需要缓存的诗句,其中,对于实时性要求不是很高的接口,可以通过设置一个单例类来将请求到的数据进行缓存,在一定的预设时间段内也就是一个缓存时长内,如果再次请求相同的数据,则不会重新向服务器请求该数据,而是调用本地缓存中的数据进行加载,提升了重复请求的数据的加载速度。
在本发明的另一实施例中,参考图2,图2为本发明另一实施例提供的一种MVC框架的数据请求系统的结构图,所述系统包括:请求类构建单元21、请求接收单元22和反馈单元23。
其中,请求类构建单元21用于在MVC框架中的模型层构建一个请求类;其中所述请求类用于将请求到的数据封装成目标格式;
其中,请求接收单元22用于接收网络访问请求,在控制器中调用所述请求类,回调请求结果;
其中,反馈单元23用于当所述请求结果为成功时,在视图中显示被封装成目标格式的数据。
具体的,以网络交易平台中获取交易记录为例,首先构建一个TradeRequestModel的类,在这个类中进行网络请求,将请求到数据封装成我们想要的格式。在MVC框架的制器中(Controller)中,调用该类的实例方法,用iOS中常用的block方式回调到请求结果,其中包含一个成功的completeBlock和一个失败的failedBlock,在控制器中,假如completeBlock触发,即所述请求结果为成功的时候,将请求到的数据在视图层进行展示。
建立这个请求类的好处是将数据的处理逻辑放在模型层,假如有其它控制器需要调用,也能很快速得到数据,避免在控制器层中代码过多且重复。
在上述实施例的基础上,所述反馈单元还用于:当所述请求结果为失败时,在视图中显示网络请求失败的提示。
具体的,当failedBlock触发,则说明请求数据失败,发出网络请求失败的提示再显示层中显示。
在上述实施例的基础上,所述请求类构建单元21中还包括单例类构建子单元,用于构建第一单例类,用于设置所述请求类需要的头部参数。
其中,所述头部参数包括:必要参数信息和可选参数信息。
其中,所述可选参数信息包括:系统语言、设备类型、应用版本、屏幕高度和屏幕宽度中的一种或多种。
具体的,新增了一个单例类,名字叫HTTPClient,在建立的TradeRequestModel类中,定义了一个方法,名字叫getTradeRecordListForCommand,在该方法中,使用HTTPClient.shared这个单例方法得到HTTPClient的一个对象,然后该对象调用request方法,方法中依次传递HTTP请求需要的URL地址和参数,还有请求方式。在该实施例中,整个网络访问请求类型为get。在其他类型的网络访问请求中,例如post请求,也可以应用同样的方法。在单例类HTTPClient中的头部信息可以理解为一个通用头,每次发送网络请求的时候,都带上此头部信息,这些头部参数信息中,又分为两类,第一类是每次请求的时候必须要传的参数信息,比如responseSerializer即为指定请求能够接收的内容类型,如application/json″,″text/json″,″text/javascript″,″application/x-protobuf″等;或者指定请求提交内容类型″Content-Type″:″application/x-www-form-urlencoded″。
第二类是被必要的头部参数信息,例如在一个软件有6个接口,需要客户端传当前用户手机系统语言给服务端,用来判断返回是需要日文内容还是中文内容,这时候因为接口要这个字段比较频繁,后面新增接口也可能会用到,通用性比较高,因此定义一个systemLanguage字段,将用户系统中当前语言放入http头部,方便服务器收到请求后,随时能取得到用户的语言信息。在所述头部参数信息中可选参数信息包括系统语言、设备类型、应用版本、屏幕高度和屏幕宽度中的一种或多种。可选头部信息可以根据请求的数据类型和请求的设备状况进行选择,使得请求到的数据可以完整的在视图层上进行显示。
在上述各实施例的基础上,所述请求类构建单元21中还包括第二单例类构建子单元,用于构建第二单例类,用于设置所述请求的缓存策略。其中,所述缓存策略至少包括缓存时长。
具体的,构建单例类CachePolicy,用来处理是否需要缓存的诗句,0中,对于实时性要求不是很高的接口,可以通过设置一个单例类来将请求到的数据进行缓存,在一定的预设时间段内也就是一个缓存时长内,如果再次请求相同的数据,则不会重新向服务器请求该数据,而是调用本地缓存中的数据进行加载,提升了重复请求的数据的加载速度。
参考图3,图3为本发明另一实施例提供的一种MVC框架的数据请求设备的结构图。所述设备包括:处理器301、存储器302及总线303。
所述处理器301用于调用所述存储器302中的程序指令,以执行上述各方法实施例所提供的方法,例如包括,在MVC框架中的模型层构建一个请求类;其中所述请求类用于将请求到的数据封装成目标格式;接收网络访问请求,在控制器中调用所述请求类,回调请求结果;当所述请求结果为成功时,在视图中显示被封装成目标格式的数据。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种MVC框架的数据请求方法,其特征在于,包括:
S1,在MVC框架中的模型层构建一个请求类;其中所述请求类用于将请求到的数据封装成目标格式;
S2,接收网络访问请求,在控制器中调用所述请求类,回调请求结果;
S3,当所述请求结果为成功时,在视图中显示被封装成目标格式的数据。
2.根据权利要求1所述的方法,其特征在于,所述步骤S3之后还包括:当所述请求结果为失败时,在视图中显示网络请求失败的提示。
3.根据权利要求1所述的方法,其特征在于,所述网络访问请求内容包括:请求地址、枚举类型、请求参数、编码类型、头部信息、缓存策略和请求回调结果。
4.根据权利要求3所述的方法,其特征在于,所述步骤S1之后还包括:构建第一单例类,用于设置所述请求类需要的头部参数。
5.根据权利要求4所述的方法,其特征在于,所述头部参数包括:必要参数信息和可选参数信息。
6.根据权利要求5所述的方法,其特征在于,所述可选参数信息包括:系统语言、设备类型、应用版本、屏幕高度和屏幕宽度中的一种或多种。
7.根据权利要求3所述的方法,其特征在于,所述步骤S1之后还包括:构建第二单例类,用于设置所述请求的缓存策略。
8.一种MVC框架的数据请求系统,其特征在于,包括:
请求类构建单元,用于在MVC框架中的模型层构建一个请求类;其中所述请求类用于将请求到的数据封装成目标格式;
请求接收单元,用于接收网络访问请求,在控制器中调用所述请求类,回调请求结果;
反馈单元,用于当所述请求结果为成功时,在视图中显示被封装成目标格式的数据。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1到7中任一所述的方法的步骤。
10.一种MVC框架的数据请求设备,其特征在于,包括:
至少一个处理器;
以及与所述处理器连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711489175.3A CN108334322B (zh) | 2017-12-30 | 2017-12-30 | 一种mvc框架的数据请求方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711489175.3A CN108334322B (zh) | 2017-12-30 | 2017-12-30 | 一种mvc框架的数据请求方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108334322A true CN108334322A (zh) | 2018-07-27 |
CN108334322B CN108334322B (zh) | 2021-07-13 |
Family
ID=62923885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711489175.3A Active CN108334322B (zh) | 2017-12-30 | 2017-12-30 | 一种mvc框架的数据请求方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108334322B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109862076A (zh) * | 2018-12-30 | 2019-06-07 | 贝壳技术有限公司 | 一种业务数据交互方法、装置和系统 |
CN110990000A (zh) * | 2019-11-11 | 2020-04-10 | 山东中创软件工程股份有限公司 | Mvc模式设计模型层的数据请求处理方法、装置及设备 |
CN115914337A (zh) * | 2022-10-10 | 2023-04-04 | 深圳优美创新科技有限公司 | 一种app网络连接失败处理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000132385A (ja) * | 1998-10-22 | 2000-05-12 | Ntt Communicationware Corp | Guiアプリケーション開発におけるクラス設計方法 |
CN104281441A (zh) * | 2013-07-09 | 2015-01-14 | 腾讯科技(深圳)有限公司 | 基于mvc的数据提取方法及装置 |
CN107479891A (zh) * | 2017-08-17 | 2017-12-15 | 北京理工大学 | 一种基于mvc模型数据处理系统及方法 |
-
2017
- 2017-12-30 CN CN201711489175.3A patent/CN108334322B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000132385A (ja) * | 1998-10-22 | 2000-05-12 | Ntt Communicationware Corp | Guiアプリケーション開発におけるクラス設計方法 |
CN104281441A (zh) * | 2013-07-09 | 2015-01-14 | 腾讯科技(深圳)有限公司 | 基于mvc的数据提取方法及装置 |
CN107479891A (zh) * | 2017-08-17 | 2017-12-15 | 北京理工大学 | 一种基于mvc模型数据处理系统及方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109862076A (zh) * | 2018-12-30 | 2019-06-07 | 贝壳技术有限公司 | 一种业务数据交互方法、装置和系统 |
CN109862076B (zh) * | 2018-12-30 | 2022-05-03 | 贝壳技术有限公司 | 一种业务数据交互方法、装置和系统 |
CN110990000A (zh) * | 2019-11-11 | 2020-04-10 | 山东中创软件工程股份有限公司 | Mvc模式设计模型层的数据请求处理方法、装置及设备 |
CN115914337A (zh) * | 2022-10-10 | 2023-04-04 | 深圳优美创新科技有限公司 | 一种app网络连接失败处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108334322B (zh) | 2021-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106209925B (zh) | 页面加载方法、客户端及系统 | |
CN110351342A (zh) | 业务指令处理方法、装置、计算机设备和存储介质 | |
US9621641B2 (en) | Predictive rendering of current content versions | |
CN106464746B (zh) | 支持事件流处理系统中的故障转移的方法与非暂时性计算机可读媒体以及系统 | |
CN104468363B (zh) | 页面重定向方法、路由设备、终端设备及系统 | |
US20180300422A1 (en) | Staticized-Page Processing Method and Apparatus | |
CN108334322A (zh) | 一种mvc框架的数据请求方法及系统 | |
CN110311989A (zh) | 一种灰度发布方法、装置、存储介质、设备及系统 | |
CN107450899B (zh) | 终端控制脚本的生成方法和装置 | |
CN104391868B (zh) | 动态页面静态化的装置和方法 | |
CN106603598A (zh) | 处理业务请求的方法及装置 | |
CN109547511A (zh) | 一种web消息实时推送方法、服务器、客户端及系统 | |
CN106293794A (zh) | 加载页面的方法、装置和系统 | |
CN103678549A (zh) | 网页页面数据共享方法和装置 | |
CN106897336A (zh) | 网页文件发送方法、网页渲染方法及装置、网页渲染系统 | |
CN104378428B (zh) | 一种用于文件下载的方法和装置 | |
CN104335524A (zh) | 用于客户端侧页面处理的公共web可访问数据存储 | |
CN108132991A (zh) | 一种h5页面加载方法及系统 | |
CN105095220B (zh) | 一种浏览器实现方法、终端和虚拟化代理装置 | |
CN104462237A (zh) | 显示公众消息的方法及装置 | |
CN107948318A (zh) | 多节点间的缓存同步方法和系统 | |
CN102891875A (zh) | 信令跟踪方法、web客户端、服务端及信令跟踪系统 | |
CN109086136A (zh) | 一种Samba软件的请求处理方法及相关装置 | |
US8898220B2 (en) | Remote method invocation tunneling over hypertext transfer protocol | |
CN107517188A (zh) | 一种基于安卓系统的数据处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |