第三十三章 使用 CSP 进行基于标签的开发 - 使用Hyperevents #server和#call调用服务器端方法

简介: 第三十三章 使用 CSP 进行基于标签的开发 - 使用Hyperevents #server和#call调用服务器端方法

第三十三章 使用 CSP 进行基于标签的开发 - 使用Hyperevents #server和#call调用服务器端方法

使用Hyperevents #server#call调用服务器端方法

hyperevent是我们对web浏览器事件的CSP扩展,是一种用于创建交互式web动作的web开发技术。使用hyperevents,可以在Caché服务器上运行类的方法来响应客户端web浏览器中的事件,而无需在客户端重新加载HTML页面。在更广阔的世界里,这种能力通常被称为AJAXCaché hyperevents在许多情况下非常有用,特别是在数据库应用程序中,可能希望对数据库执行验证或搜索功能,而不必重新加载和重新格式化整个网页。通常,超级事件是使用XMLHttpRequest实现的。

如果正在使用类开发CSP页,则需要调用..HyperEventHead方法在< Head >部分的输出期间加载hyperevents所需的JavaScript

使用#server调用服务器端方法

CSP文件中,可以使用#server指令调用服务器端方法。可以在任何允许JavaScript的地方使用这个指令。

#server指令的语法是:

#server(classname.methodname(args,...))#
复制代码

其中classname是服务器端Caché类的名称,methodname是该类中方法的名称。args是传递给服务器端方法的客户端JavaScript参数列表。注意,开始和结束#符号之间的所有代码必须都在一行上。

例如,要调用CachéMyPackage中名为Test的服务器端方法,请使用:

<script language="JavaScript">
function test(value)
{
   // invoke server-side method Test
   #server(MyPackage.Test(value))#;
}
</script>
复制代码

CSP编译器将每次出现的#server指令替换为调用服务器端方法的JavaScript代码。

从给定的CSP页面,可以调用属于为其生成的类的方法,方法使用..方法名语法。例如:

#server(..MyMethod(arg))#
复制代码

使用#call调用服务器端方法

同步性由被调用的方法、#server#call决定。#server是同步的;##call是异步的。

同步调用可能会导致UI响应明显暂停(挂起)。然而,异步调用有其自身的优点和问题。例如,如果用户在网页上输入一个值,页面不会立即更新;更新时,用户可能已经移动到另一个页面。

#server同步。 当调用服务器端方法时,#server向客户端返回一个值(因为客户端正在等待)*,*返回JavaScript供客户端执行

#call是异步的:当调用服务器端方法时,#call不等待返回值。 相反,应用程序依赖于服务器发回的JavaScript在客户机上执行任何需要的操作。

当使用异步##call时,在进行多个连续调用时必须非常小心。 如果在前一个方法完成之前通过#call调用了一个方法,web服务器可能会决定取消你前一个方法调用。 或者用户可能在JavaScript执行之前转移到另一个页面,因此JavaScript在错误的页面上执行,从而导致错误。 因此,大多数情况下,在启动可能需要一段时间的工作时使用#call,并提供指向显示长时间运行的job状态的另一个页面的链接。

#server一样,可以在任何允许JavaScript的地方使用#call指令。

#call指令的语法是:

#call(classname.methodname(args,...))#
复制代码

其中classname是服务器端Caché类的名称,methodname是类中的方法的名称。args是传递给服务器端方法的客户端JavaScript参数列表。 注意,在#号开始和结束之间的所有代码都必须在一行中。

例如,要在CachéMyPackage中调用一个名为Test的服务器端方法,使用:

<script language="JavaScript">
function test(value)
{
  // invoke server-side method Test
  #call(MyPackage.Test(value))#;
}
</script>
复制代码

CSP编译器用调用服务器端方法的JavaScript代码替换#call指令的每次出现。

从给定的CSP页面,可以使用..调用属于为其生成的类的方法。MethodName语法。 例如:

#call(..MyMethod(arg))#


相关文章
|
3月前
|
Java
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
112 9
|
24天前
|
监控 前端开发 应用服务中间件
小游戏源码开发搭建技术栈和服务器配置流程
近些年不同场景游戏层出不穷,现就小游戏开发技术应用及功能详细剖析!
|
2月前
|
存储 人工智能 自然语言处理
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
ChatMCP 是一款基于模型上下文协议(MCP)的 AI 聊天客户端,支持多语言和自动化安装。它能够与多种大型语言模型(LLM)如 OpenAI、Claude 和 OLLama 等进行交互,具备自动化安装 MCP 服务器、SSE 传输支持、自动选择服务器、聊天记录管理等功能。
277 15
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
|
2月前
|
SQL 存储 关系型数据库
MySQL/SqlServer跨服务器增删改查(CRUD)的一种方法
通过上述方法,MySQL和SQL Server均能够实现跨服务器的增删改查操作。MySQL通过联邦存储引擎提供了直接的跨服务器表访问,而SQL Server通过链接服务器和分布式查询实现了灵活的跨服务器数据操作。这些技术为分布式数据库管理提供了强大的支持,能够满足复杂的数据操作需求。
102 12
|
3月前
|
Ubuntu 网络协议 关系型数据库
超聚变服务器2288H V6使用 iBMC 安装 Ubuntu Server 24.04 LTS及后续系统配置
【11月更文挑战第15天】本文档详细介绍了如何使用iBMC在超聚变服务器2288H V6上安装Ubuntu Server 24.04 LTS,包括连接iBMC管理口、登录iBMC管理界面、配置RAID、安装系统以及后续系统配置等步骤。
457 4
|
3月前
|
安全 开发工具 Swift
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发。基础语法涵盖变量、常量、数据类型、运算符、控制流等,高级特性包括函数、闭包、类、结构体、协议和泛型。
68 2
|
3月前
|
弹性计算 异构计算
2024年阿里云GPU服务器多少钱1小时?亲测价格查询方法
2024年阿里云GPU服务器每小时收费因实例规格不同而异。可通过阿里云GPU服务器页面选择“按量付费”查看具体价格。例如,NVIDIA A100的gn7e实例为34.742元/小时,NVIDIA A10的gn7i实例为12.710156元/小时。更多详情请访问阿里云官网。
449 2
|
3月前
|
人工智能 弹性计算 关系型数据库
学生免费领取阿里云服务器一年的方法,以及各种活动
学生可以免费领取阿里云服务器一年,新人可获2核4G,非新人2核2G。访问链接注册并完成学生认证,领取300元无门槛优惠券,购买轻量应用服务器。此外,还有多项活动可赢取实物奖品。
1226 2
|
3月前
|
关系型数据库 API 数据库
后端开发的艺术:从零到一构建高效服务器
在数字化时代,后端开发是支撑现代互联网应用的基石。本文旨在探讨后端开发的核心概念、关键技术以及如何构建一个高效的服务器。我们将从基础的编程语言选择开始,逐步深入到数据库设计、API开发和性能优化等关键领域。通过实际案例分析,我们将揭示后端开发的复杂性和挑战性,同时提供实用的解决方案和最佳实践。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和启发。
|
4月前
|
网络安全 Docker 容器
VScode远程服务器之远程 远程容器 进行开发(五)
VScode远程服务器之远程 远程容器 进行开发(五)
96 1