附录¶
脚本开发模式的执行处理Sequence¶
本节介绍从浏览器访问intra-mart Accel Platform时的操作规格。当通过浏览器的HTTP请求执行脚本开发模式的程序时,将执行创建页所需的服务器端JavaScript和html。页程序是一对两个文件, 服务器端JavaScript和html。这两个文件通过文件标签名称关联。必须使用相同的文件标签名称创建每个文件(html和js)。扩展名是.html(用于html)和.js(用于服务器端JavaScript) 。(两个扩展名都只是小写。如果使用大写,它将无法正常工作。)如果不需要js,则可以省略js,但是html不能。
浏览器发出请求时的处理流程¶
当浏览器发出请求时,流程如下。
- 接受来自浏览器的请求
- 函数 session.js中执行init() 函数
- 执行动作属性函数
- 页面属性js init() 函数执行
- 页面属性html的执行
- 函数 session.js中执行close() 函数
- 页返回
动作属性¶
动作属性函数是来自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
- 加载init.js
- 在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
- 动作属性指定函数执行
- 执行init() 函数
- 运行HTML
- 执行close() 函数