第三十二章 使用 CSP 进行基于标签的开发 - 服务器端方法

简介: 第三十二章 使用 CSP 进行基于标签的开发 - 服务器端方法

第三十二章 使用 CSP 进行基于标签的开发 - 服务器端方法

CSP提供了两种从HTML客户机调用服务器端方法的技术。

  • 使用HTTP提交机制。
  • 使用超事件,#server(同步)或#call(异步)。 也可以使用%CSP.PageHyperEventCall()方法。

使用HTTP Submit的优点是客户端编程简单,不需要客户端组件。 它的缺点是在方法调用之后由客户机重新绘制页面,并且服务器端编程更加困难。

如果使用超级事件,#SERVER#CALL是使用XMLHttpRequest来实现的。#Call是异步的:如果(作为用户)在网页上输入值,则该页面不会立即更新;在更新时,可能已移动到另一个页面。#SERVER是同步的;页面在从调用返回时立即更新。

请注意,同步XMLHttpRequest已被许多浏览器弃用,通常情况下,移动趋势是只支持异步XMLHttpRequest.

HTTP提交和超级事件将在以下各节中进一步描述。

Caché and AJAX

缩写AJAX通常用来指代一组技术,这些技术允许从服务器更新客户端页面的数据,而不必请求新的浏览器页面。Caché超链接允许AJAX交互,而不需要程序员处理所有与服务器的通信。允许AJAX事务的两种方式:

  1. 对于CSP,使用#server()#call()命令允许从客户端直接调用服务器端方法。(也可以使用%CSP.PageHyperEventCall()方法。)
  2. 对于Zen,程序员可以定义ZenMethods来处理客户端-服务器交互。这些可能是同步的,也可能是异步的,具体取决于方法签名:

同步AJAX请求的签名

Method XYZ(arg) as %Status [ZenMethod]    
复制代码

异步AJAX请求的签名

Method XYZ() [ZenMethod]              
复制代码

用Ajax实现并行处理

由于^%cspSession全局节点上的锁,对CSPAJAX请求在服务器上按顺序处理。要使AJAX请求能够并行处理,如果正在使用的应用程序没有在会话全局/对象中设置任何内容(因此只读),可以使用%CSP.Session.Unlock()方法为该会话和%Session.Lock解锁该会话的CSP全局。

通过HTTP提交调用服务器端方法

使用HTTP提交调用服务器代码只需要很少的浏览器功能。对于拥有广泛受众并且必须支持多种浏览器的应用程序来说,这是一种很好的技术。使用HTTP提交时,用户每次单击提交按钮时都会重新显示请求的页面。

可以通过以下方式处理HTTP提交:

  1. 提供包含提交按钮的HTML表单:
<form name="MyForm" action="MyPage.csp" method="GET">
User Name: <input type="TEXT" name="USERNAME"><br>
<input type="SUBMIT" name="BUTTON1" value="OK">
</form>
复制代码

它定义了一个简单的表单,其中包含一个名为UserName的文本字段和一个名为BUTTON1的提交按钮。表单的action属性指定表单提交到的URL。方法属性指定使用哪种HTTP协议提交表单:POSTGET

  1. 当用户单击提交按钮BUTTON1时,浏览器将收集表单中所有控件的值,并将它们提交给表单的action属性指定的URL。(请注意,页面可以通过使用action属性指定其名称或将action属性保留为空来提交回其自身。)。无论表单是通过POST还是GET提交的,CSP都会将提交的值视为URL参数。在这种情况下,提交表单相当于请求以下URL
MyPage.csp?USERNAME=Elvis&BUTTON1=OK
复制代码

包括SUBMIT按钮的名称和值。 如果表单上有多个SUBMIT按钮,则请求中只包含实际按下的数据按钮。 这是检测何时发生SUBMIT的关键。

  1. 服务器代码(在本例中是MyPage.csp)检测到提交已经发生。这是通过测试%request对象中的名称BUTTON1来实现的:
<script language="Cache" runat="SERVER">
   // test for a submit button
   If ($Data(%request.Data("BUTTON1",1))) {
      // this is a submit; call our method
      Do ..MyMethod($Get(%request.Data("USERNAME",1)))
   }
</script>
复制代码
  1. 在调用所需的服务器端逻辑后,服务器代码继续运行并返回HTML以供浏览器显示。这可能是当前表单或不同页面的重新显示。
相关文章
|
4月前
|
弹性计算 ice
阿里云4核8g服务器多少钱一年?1个月和1小时价格,省钱购买方法分享
阿里云4核8G服务器价格因实例类型而异,经济型e实例约159元/月,计算型c9i约371元/月,按小时计费最低0.45元。实际购买享折扣,1年最高可省至1578元,附主流ECS实例及CPU型号参考。
508 8
|
4月前
|
弹性计算 定位技术 数据中心
阿里云服务器配置选择方法:付费类型、地域及CPU内存配置全解析
阿里云服务器怎么选?2025最新指南:就近选择地域,降低延迟;长期使用选包年包月,短期灵活选按量付费;企业选2核4G5M仅199元/年,个人选2核2G3M低至99元/年,高性价比爆款推荐,轻松上云。
294 11
|
4月前
|
弹性计算
阿里云8核16G云服务器收费标准:最新价格及省钱购买方法整理
阿里云8核16G云服务器价格因实例类型而异。计算型c9i约743元/月,一年6450元(7折);通用算力型u1约673元/月,一年仅需4225元(5.1折)。实际价格享时长折扣,详情见ECS官网。
|
4月前
|
域名解析 弹性计算 负载均衡
给阿里云服务器加速的方法有哪些?
本文介绍如何通过阿里云CDN加速、ECS网络优化及SLB负载均衡三种方法提升服务器响应速度。涵盖具体操作步骤,助力用户优化访问性能。
|
5月前
|
弹性计算 定位技术 数据中心
阿里云服务器选择方法:配置、地域及付费模式全解析
2025阿里云服务器选购指南:就近选择地域以降低延迟,企业用户优选2核4G5M带宽u1实例,仅199元/年;个人用户可选2核2G3M带宽ECS,99元/年起。长期稳定业务选包年包月,短期或波动场景用按量付费,轻松搭建网站首选高性价比配置。
|
6月前
|
弹性计算 小程序 容灾
2025购买阿里云服务器配置选择方法:企业+个人+学生攻略
2025年阿里云服务器购买省钱攻略,涵盖个人、中小企业及高性能配置推荐。个人用户优选38元轻量或99元ECS,企业用户选199元2核4G服务器,游戏用户适合4核16G或8核32G配置,详情请参考最新活动及攻略。
1260 11
|
8月前
|
C# 图形学 开发者
Unity开发中使用UnityWebRequest从HTTP服务器下载资源。
总之,UnityWebRequest就是游戏开发者手中的万能钓鱼竿,既可以获取文本数据,也能钓上图片资源,甚至是那声音的涟漪。使用UnityWebRequest的时候,你需要精心准备,比如确定URL、配置请求类型和头信息;发起请求;巧妙处理钓获的数据;还需要机智面对网络波澜,处理各种可能出现的错误。按照这样的过程,数据的钓取将会是一次既轻松愉快也效率高效的编程钓鱼之旅。
395 18
|
6月前
|
缓存 监控 前端开发
详述uniapp项目部署于Nginx服务器的配置优化方法。
综上所述,uniapp项目部署于Nginx的优化方法多种多样,应根据实际情况灵活地采取合适的策略。配置后持续监控和调试,适时调整配置以保持最佳性能,并确保随着应用需求和访问模式的变化,服务器配置得到适当的更新和优化。
281 0
|
7月前
|
安全 关系型数据库 网络安全
安全加固:启动PostgreSQL 14服务器SSL加密的方法指南在CentOS 7环境中
通过上述步骤,你可以为PostgreSQL数据库服务器设置SSL加密,从而增加数据在传输中的安全性。确保维持证书的有效性,并且定期更新和管理密钥,以防止未授权访问。
349 0
|
10月前
|
缓存 PHP 数据库
WordPress网站服务器性能优化方法,站长必备。
最后,当你将这些方法组合起来并实施时,您将发现你的WordPress网站性能有了显著的提高。别忘了,这不是一次性的任务,要定期执行,保持你的车(网站)始终在轨道上飞驰。
305 21

热门文章

最新文章