intra-mart Accel Platform 脚本开发模式编程指南 第16版2020-04-01

附录

脚本开发模式的执行处理Sequence

本节介绍从浏览器访问intra-mart Accel Platform时的操作规格。
当通过浏览器的HTTP请求执行脚本开发模式的程序时,将执行创建页所需的服务器端JavaScript和html。
页程序是一对两个文件, 服务器端JavaScript和html。
这两个文件通过文件标签名称关联。必须使用相同的文件标签名称创建每个文件(html和js)。
扩展名是.html(用于html)和.js(用于服务器端JavaScript) 。
(两个扩展名都只是小写。如果使用大写,它将无法正常工作。)
如果不需要js,则可以省略js,但是html不能。

浏览器发出请求时的处理流程

当浏览器发出请求时,流程如下。
  1. 接受来自浏览器的请求
  2. 函数 session.js中执行init() 函数
  3. 执行动作属性函数
  4. 页面属性js init() 函数执行
  5. 页面属性html的执行
  6. 函数 session.js中执行close() 函数
  7. 页返回

动作属性

动作属性函数是来自intra-mart链接(<IMART类型=“链接”>)或表单(<IMART类型=“表单”>)或提交(<IMART类型=“提交”>)的请求是,action属性函数仅被处理如果指定了执行已(action属性函数 ,如果没有指定,此处理阶段将被跳过执行)。
具有URL参数信息的Object (请求)作为参数传递给action属性函数 。

注解

如果同时指定了多个动作属性函数 ,则根据以下等级确定要执行的函数 。
1.提交
2.形式
3.链接
有关动作属性函数的参数请求的详细内容 , 请参阅[API文档脚本开发模式 im-BizAPI -platform-Request]。

注意

出于兼容性目的,保留了使用动作,页面属性和imart type =“ form”的用途,不建议使用。
作为替代方法,请参阅[脚本开发模式编程指南-应用程序(使用intra-mart Accel Platform )- 路由]。

页面属性

页面属性是来自intra-mart链接(<IMART类型=“链接”>)或表单(<IMART类型=“表单”>)或提交(<IMART类型=“提交”>)的请求是的,仅在指定了执行页面属性函数时才进行处理。
如果您没有指定页面属性,请重新运行该页,这是一个请求。

注解

页面属性服务器端JavaScript Init() 函数通过URL参数信息作为参数传递给Object(请求)。
有关页面属性函数的自变量请求的详细内容 , 请参阅[API文档脚本开发模式 im-BizAPI -platform-Request]。

注意

出于兼容性目的,保留了使用动作,页面属性和imart type =“ form”的用途,不建议使用。
作为替代方法,请参阅[脚本开发模式编程指南-应用程序(使用intra-mart Accel Platform )- 路由]。

如果发生错误

如果在每个脚本的执行阶段中由于任何原因发生错误,则脚本执行将立即停止,并将错误屏幕发送到浏览器。
发生错误时,将跳过发生错误的执行阶段以及“ session.js中的close() 函数执行”和“页返回”以外的其余执行阶段。

session.js

session.js中的close() 函数执行阶段旨在执行与页处理相关的最终过程。

注意

在session.js的close() 函数执行阶段,例如Debug.browse()和forward()
如果执行强制中断脚本执行并转换处理的API,则可能无法正确处理该API。

服务器端JavaScript的类型

根据目的, 服务器端JavaScript大致分为3种类型。

初次启动

在用于初始启动的服务器端JavaScript中,当服务器加载程序文件时,将执行文件中描述的init() 函数。
诸如通用函数注册之类的初始化处理应在init() 函数进行描述。
首次启动服务器时,将执行源根目录(默认为jss / src)中init.js中定义的init() 函数 。
  • 执行Sequence
    1. 加载init.js
    2. 在init.js中执行init() 函数

html链接

与html一起使用的服务器端JavaScript通过参数调用。
当通过HTTP请求执行时,init() 函数将以URL参数作为参数的请求Object 执行。
另外,如果链接或表单的action属性指定了任何函数执行,则将使用带有URL参数作为参数的请求Object 来执行指定的函数 。
当通过除HTTP请求之外的方法(API forward()等)执行时, 服务器端JavaScript的init() 函数将使用该方法定义的参数执行。 (详细内容,请参阅每个API规范)
执行的html完成后,如果在服务器端JavaScript定义了close() 函数,则使用URL参数关闭请求Object,因为执行了arguments() 函数。
  • 执行Sequence
    1. 动作属性指定函数执行
    2. 执行init() 函数
    3. 运行HTML
    4. 执行close() 函数

特别节目

session.js是一个在收到HTTP请求时运行的程序。
接受HTTP请求后,将执行session.js中定义的init() 函数 。
另外,在完成html的创建后,在返回HTTP响应之前执行close() 函数 。
如果更改session.js文件,则在重新启动intra-mart Accel Platform之前,该文件不会反映在系统中。