首页 > 其他分享 >第三十五章 使用 CSP 进行基于标签的开发 - 使用服务器端方法的提示

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

时间:2022-11-03 09:16:43浏览次数:46  
标签:服务器端 使用 value server 第三十五章 CSP 页面

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

使用服务器端方法的提示

web页面调用服务器端方法的能力是一个功能强大的特性。
但是,在应用程序中使用服务器端方法时,需要记住一些事情。

注意:在本节中,对于#server所提到的任何内容也适用于#call,除非另有说明。

#server#call指令都可以从web浏览器中的JavaScript调用Caché服务器上的方法。
这使得CSP能够做一些事情,比如在移出字段时验证字段,而不是等待表单的提交,从而向用户提供即时反馈。
在使用#server语法时,应该注意以下几个因素——否则可能会产生执行非常慢的应用程序,或者在某些情况下根本无法工作。

使用#server时要记住两个基本规则:

  1. 永远不要在网页的onload事件中使用#server
    这可能会失败,但在Caché中生成web页面时,生成数据更快、更容易。
  2. 不要在网页的onunload事件中使用#server
    使用尽可能少的#server调用,并在每个调用中做尽可能多的工作,因为它们开销很大,涉及到从浏览器到服务器的往返。

这不是一个好主意的原因是,当从Caché生成页面时,需要在onload事件中运行的任何代码都可以更快、更容易地运行。
例如,假设为JavaScript变量设置一个初始值,以便稍后在页面中使用(可能在#server调用中)。
所以你现在正在做的是:

<html>
<head>
<script language="JavaScript">
function LoadEvent()
{
   var value=#server(..GetValue())#;
}
</script>
</head>
<body onl oad=LoadEvent();>
</body>
</html>
<script language="Cache" method="GetValue" returntype="%String">
   Quit %session.Data("value")
</script>

但是,完全没有必要调用#server,因为JavaScript变量的值在生成页面时已经在%session.Data("value")中知道了。
因此,最好这样写:

<html>
<head>
<script language="JavaScript">
function LoadEvent()
{
   var value='#(%session.Data("value"))#';
}
</script>
</head>
<body onl oad=LoadEvent();>
</body>
</html>

无论你在做什么,同样的技巧都适用,如果你在文档加载时更新表单元素的值,那么在页面生成时将其更改为将值放入,例如:

<input type="text" name="TextBox" value='#(%request.Get("Value"))#'>

在页面的onload事件中不需要使用#server

因为页面正在卸载,所以很难知道从Caché返回的JavaScript是否会被执行,而实际的行为取决于浏览器。
另外,如果用户关闭了机器,则永远不会得到onunload事件。
应用程序需要能够在任何情况下处理这种可能性,可能是通过在%session对象上使用超时。
例如,可以将onunload #server逻辑代码移动到用户单击的下一个CSP页面的开头。

标签:服务器端,使用,value,server,第三十五章,CSP,页面
From: https://www.cnblogs.com/yaoxin521123/p/16853259.html

相关文章

  • 11.2 解题报告&CSP-S 2022题解
    T1用时:\(1\)h期望得分:\(70\)~\(80\)实际得分:\(55\)这题考场写了个常数比较小的\(O(n^3)\)的做法,期望得分\(75\)左右,但是由于bfs忘记打标记导致MLE和TLE,挂......
  • CSP2022 游寄
    今年还是很寄考场上感觉真的没脑子。上来\(T1\)就给我整蒙了,想到原来看过的三元环计数,偏了然后在四个题之间反复横跳,觉得T2应该可做,策略就是取几个最值,T3比较离谱,T4想......
  • CSP2022题目乱写
    官方数据没出,根据目前已知信息瞎写,有错误请帮忙指出假期计划要找\(1-a-b-c-d-1\)的形式,不想偏的话应该能想到预处理一部分然后拼接预处理形式相同的部分\(......
  • CSP-S 2022 VP 记
    19:15开始VP的(19:15先开T1,感觉不难,只是点的判重需要点功夫。19:30开T2,发现很简单,开码。19:40感觉T2很多细节,先开T3,发现题意等价于判断所有点的出度是否为\(1\)。2......
  • CSP2020-12-T5
    星际旅行算法:线段树、离散化题意:你需要维护\(3\)维空间的\(n(1\leqn\leq10^9)\)个点,初始时这些点的三维坐标都是\(0\)。将有以下\(4\)种操作\(m(1\leqm\leq......
  • CSP-S 2022 游记
    真就游寄虽然没能正常参加CSP,但是还是要做一下。说实话这成绩七级勾本应该是稳了T1假期计划(\(holiday\))2s512M\(1\toA\toB\toC\toD\to1\)观察这个结构,发现......
  • CSP2022总结
    拿到题先看T1,发现有点难,没一眼秒,转而看T2,发现是个RMQ板子,赶紧开写,写+调60min。然后回来看T1,发现可以枚举中间两个点,预处理匹配前3大的点,处理一下匹配关系即可,想+写+调60......
  • delphi TscSplitView控件学习笔记
    一.先说效果吧,放置的位置不一样,显示出来的效果也不一样 然后效果是这样的:注意位置标记1按钮的位置.当DisplayMode:=scsvmOverlay时,会遮挡TscSplitView......
  • CSP-S 2022 数据传输
    [CSP-S2022]数据传输思路对于\(20\%\)的数据直接暴力,期望得分20。对于\(44\%\)的数据预处理所有可以相互到达的点对,边权为两个点的点权和,原问题变为最短路,令最......
  • 2022CSP总结
    根据人品守恒定律,csp前两天的期中考炸得一干二净所以,考前自我感觉比较良好J组早上起的比较晚,在宿舍和机房摸了挺久才出发结果在jz门口下了车才发现身份证没有带。。。......