aFleX脚本的常见错误备忘 - 面向对象网,web开发,flex,学习,对象 - 面向对象技术开发

面向对象技术开发

会员投稿 投稿指南 站长资讯通告:
您的位置: 首页 > Web开发 > Flex > 正文

aFleX脚本的常见错误备忘

来源: www.bianceng.cn 阅读:

A10的aFleX脚本语言是基于Tcl脚本语言的,下面是一些常见的错误。

--------------------------------------------------------------------------------

aFleX syntax error message “wrong # args: no script following”

注: aFleX 语法错误在Web界面下保存aFlex时显示或者命令行下检查(aflex check script-name)时显示.

这类错误通常在“if”所在行。Tcl脚本语言中,前花括号(“{”)必须与之前的后花括号(“}”)在同一行,而且之间必须有一个空格(“} {”)。

正确:

if { [HTTP::uri] starts_with “/private”)} {
xyz
}
错误(前花括号与上一个后花括号不在同一行):    

if { [HTTP::uri] starts_with “/private”)}
{
xyz
}

错误: ( 花括号间无空格)

if { [HTTP::uri] starts_with “/private”)}{
xyz
}

--------------------------------------------------------------------------------

aFleX execution abort errors – wrong variable name

注: aFleX execution abort error 统计可通过WEB界面(Monitor > Service > aFleX)和命令行(show aflex script-name)查看。

查看本栏目更多精彩内容:http://www.bianceng.cn/webkf/Flex/

这类错误可能由于变量名中包含“ – ”。 aFleX 变量可以包含数字、字母和下划线( _ )。

正确:   set ip_addr “10.0.0.10″
错误:   set ip-addr “10.0.0.10″

--------------------------------------------------------------------------------

aFleX execution abort errors – HTTP header not present

这类错误可能由于aFleX脚本试图读取在请求或响应头中不存在的HTTP变量。例如,HTTP响应头中不一定总是有 “Location”,这个头通常只出现在服务器重定向应答 (响应代码 301 或 302)。

正确(判断存在该字段后才读取):

if { [HTTP::header exists "Location"]} {
if {[HTTP::header Location] contains “intranet.example.com”} {
xyz
}

错误(不做判断总是读取):    

if { [HTTP::header Location] contains “intranet.example.com”} {
xyz
}

--------------------------------------------------------------------------------

aFleX HTTP content rewrite not done

这并非aFleX错误,而是HTTP响应中的内容未成功修改。这个错误在服务器返回压缩内容时发生。为了避免服务器返回压缩内容,除了在服务器关闭压缩外,也可以通过删除HTTP请求头中“Accept-Encoding”字段让服务器认为客户端不支持压缩。

注: 如果为了节约带宽和改善用户响应时间,可以启用负载均衡的压缩功能在负载均衡和客户端之间进行压缩。

解决方案(删除请求头中“Accept-Encoding”字段避免服务器响应压缩):    

when HTTP_REQUEST {
HTTP::header remove Accept-Encoding
}
when HTTP_RESPONSE {
HTTP::collect
}
when HTTP_RESPONSE_DATA {
xyz
HTTP::release
}

(R.S.)

Tags:
相关文章列表: