|
发表于 2018-7-1 18:55:47
|
显示全部楼层
|阅读模式
新疆维吾尔自治区阿克苏地区
本帖最后由 宇智波·佐助 于 2018-7-2 10:12 编辑
下载:https://share.weiyun.com/5MCZvAu
[1.8.9.7]
修复了对Windows XP/Windows 2003的兼容。
[请求]
加入了 请求.载入() 方法。视图函数触发的函数中使用(包括 模板函数)。
[响应]
加入了 响应.载入() 方法。视图函数触发的函数中使用(包括 模板函数)。
[存取队列]
修复了 取回存取列表类型的对象时 结果为空的问题(银河世纪)。
[线程池]
修复了 程序窗口关闭时弹出错误的问题(XGSoft)。
[1.8.9.6]
优化了静态库加载机制。
[数据库]
优化了ADO对象初始化机制,任意多线程环境中能够自动初始化。
[键值表/列表]
所有“置值”方法加入了自动创建节点的功能。
键值表.置值(“//a.b.c”, 5) => 自动创建 { a: { b: { c: 5 } } }
JSON式寻址路径加入了以下转义符:
\r\n 换行
\t 制表符
\\ “\”本身
\. “.”符号(不再作为节点分隔符号)
例如:
“//a.b\.c” => { "a": { "b.c": xx } }
[1.8.9.5]
[数据库]
修复了 查询 和 查询到自定义 的[批量取值]模式时内存泄漏的问题(XGSoft/兴国软件网)。
[定时任务]
优化了检测机制,采用冗余处理保证不漏掉每一秒的任务。
修复了停止无效的问题(龙鹏林)。
[1.8.9.4]
[存取队列]
加入了 压入顶部 方法(Devil)。
[1.8.9.3]
[数据库]
连接.查询() 增加了“是否批量取值”参数。
[线程池]
重构线程池对象。功能更强更好使。
修复了取值只能取键值表的问题。
修复了停止时获取任务数变负数的问题(线程竞争引起的)。
[定时任务]
加入了定时任务对象和示例。
[1.8.9]
[存取队列]
加入了存取队列对象,可以当成线程安全的队列或栈使用。支持所有存取键值表和列表支持的数据类型(易语言基础数据类型和列表、键值表)
[加解密]
修复了解密失败时可能产生奔溃的问题(银河世纪、f2)。
[数据库]
连接.查询() 增加了“是否本地游标”参数。开启后获取量大的数据时效率飞起,具体用法参考参数说明(XGSoft)。
[键值表]
到表单文本 加入了排序功能。可以按照ASCII进行正向和反向排序。
加入了 到XML 和 从XML载入 方法。可生成XML和从XML加载键值表,生成XML支持按主键名称排序。
[消息队列客户端]
修复了键值表和列表类型数据取值引起的内存问题。
[1.8.8]
优化了Session机制。不会再产生大量空Session文件造成的堆叠,从而引起服务器启动缓慢的问题。
修复了使用E2EE无法弹出自动创建变量窗口的问题。
修复了回车创建视图函数时会生成一个同名空参数函数的问题。
[模板编辑器]
修复了上个版的模板编辑器无法加载的问题。
模板编辑器处理了预览部分背景色。默认为白色。
[网站服务器]
修复了模块路径以“/”挂载时,无法跳转的问题。
加入了[107 动态模块]示例。动态模块是从DLL动态加载服务器,属于正式版功能的一部分。
[存取列表]
修复了删除第二个参数为空等情况无法删除的问题(一缕阳光)。
[正则表达式]
加入了 取子项数() 方法。可获取表达式中子表达式的数量(红枫)。
[1.8.7]
进一步提升了E2EE的稳定性。多线程等环境相比以前要稳定很多(跳过了易语言支持库SDK申请内存的巨坑)。
[列表]
加入了 分级取值的方法。可使用如下方式取值 列表.取文本(1, "server", "name")。修复了上个版本的序号取值总是第一个的问题。
[正则表达式PCRE]
加入了正则表达式PCRE版本。支持 匹配、搜索、提取、替换。多线程环境也能可靠的执行处理。
[消息队列客户端]
加入了消息队列客户端功能。主要针对RabbitMQ和ActiveMQ等标准AMQP服务器,对RabbitMQ最友好,使用前请先安装RabbitMQ。支持RabbitMQ等服务器的 队列、交换机、发布和订阅等常用功能。
[1.8.6]
[网站客户端]
加入了 置Cookie文件 方法。可多线程共享cookie数据。
[模板]
修复了选择类型的模板导致的奔溃问题
[列表]
加入了 分级取值的方法。可使用如下方式取值 列表.取文本(1, "server", "name")。
[键值表]
主键更名加入了容错处理。原始主键名称不存在时则跳过对应的更名操作,存在则进行实际更名。原来的处理方法是原主键名不存在则直接返回失败。
网站配置中加入了“允许代理地址”配置。类型为逻辑型(值可以设置为 真 / 假)。默认为 假。
开启后将不会拒绝以“http://”或“https://”开头类型的请求。关闭后,所有以这些关键字开头的请求都将被直接拒绝。
创建文本从时间 加入了容错机制,允许在格式不正确的时候也能执行格式化操作(烧饼帝)。
原因是微软的时间格式化函数不做任何容错且不抛出异常直接停止工作。https://msdn.microsoft.com/en-us/library/fe06s4ak.aspx
[1.8.5]
修复了编译后的一个重大问题导致栈奔溃的问题。
[1.8.3]
优化了 E2EE 内存中同进程库的加载机制,更加可靠。
E2EE程序在内存中永远只保留一个版本,无论何种方式调用E2EE,只要是同进程都使用外层服务器所使用的E2EE版本,不会进行重复加载。
[网站服务器]
重构了 取配置文本() 。剔除了英文命名,加入了获取JSON形式的文本。可通过参数 是否为JSON 获取。
加入了 取验证器(验证器文件)。可通过验证器文件名载入验证器。
优化了 服务器日志处理。当打开日志文件失败(日志文件为只读等情况)时,可顺利启动服务器。
[其它]
创建文本() 修复了“``”时无法转换为双引号的问题。
重新处理了 E2EE通用服务模块。
把网站做成服务时,请不要调用 网站.初始化() 方法。资源或者依赖路径的初始化,请放在“网站.订阅初始化函数”对应的回调函数中。
[1.8.2]
[数据库连接池]
加入了 输出执行SQL 和 执行时间 到日志的功能。对应的方法“是否输出SQL”和“置是否输出SQL”。可随时开启和关闭(线程安全)。
[网站服务器]
加入了 等待结束 方法。等待服务器运行直到停止或者结束。如果服务器在运行中,则此操作会一直等待并且会阻塞当前线程
加入了 清除页面缓存 方法。可通过请求相对路径,清除服务器上的 静态文件缓存 和 动态请求缓存 中的缓存数据。
修复了 大文件(2G以上) 获取尺寸无效的问题。这个是因为之前为网站打包工作做改造时,统一使用了32位数据长度的文件信息获取方法,32位有符号的数值无法描述2G以上的文件尺寸,会产生越界。
!!! 此功能影响到 网站打包 功能,所以可能需要新版的网站打包功能做支持。或者手动调用 网站打包 功能对网站进行打包。
[1.8.0]
SSL部分加入了苹果ATS(强制HTTPS)支持。开发小程序对接微信等方面更加友好。E2EE服务器现已支持PFS完全前向保密机制。
[网站服务器]
加入了 动态缓存页 请求数据缓存的功能。
修复了 文件上传尺寸过大等情况下,还能获取上传成功的消息状态。
上传 在配置中 最大上传尺寸 单位改成了 KB
上传 文件类型加入了白名单模式。
如果只限定范围内的文件类型,上传文件类型只要填写后缀即可,例如:jpg;gif;png;webp(此时只允许这几种后缀的文件上传)
如果允许上传大部分类型,而只限定不允许某些类型,则可以使用 * 来代替所有,之外的后缀都不允许。例如:*;exe;com;bat;msi(此时除了exe...msi之外的所有类型都允许上传)
修复了 某些情况下,静态缓存文件无法准确响应 gzip 的问题。
[服务器请求]
加入了 验证参数() / 验证所有参数() 功能。自动匹配和验证 远程服务/视图函数 的参数。响应验证器设置。
[存取键值表/存取列表]
修复了 键值表/列表 在某些特定环境下可能解析JSON或创建小数类型对象崩溃的问题(D-OWL)。
[对象工厂]
加入了 创建时间戳() / 载入时间戳() 功能。能够生成和载入秒或毫秒级的时间戳(Grapes)。
修复了 创建文本从时间() / 创建时间从文本() 中的国际时间转换问题。
重写了 创建文本从时间() 和 创建时间从文本()。不会再因为格式不匹配阻塞或者崩溃。
优化了 Base64解码 函数,可兼容包含换行等号空格等情况。
[网站客户端]
!!! 重要更新:返回信息头如果有多个,将不会再转换为存取列表,而是会不停的追加多行文本,一行表示一条数据。
修复了 键值表 作为POST参数时可能引起的访问失败问题。
加入了 自动跳转时,获取每次服务器返回的信息头。
修复了 代理设置无效的问题。可正常使用代理服务器。
[网页内容解析器]
修复了标签和属性中出现“-”和“_”无法完整解析名称的问题。
[加解密对象]
修复了 RSA 加解密签名时,设置输出小写十六进制文本始终为大写的问题(番茄)。
[数据验证器]
字母中文等验证条件加入了扩展字符支持。允许在字母等验证时可包含自定义字符“空格”“中划线”等。
[1.7.40]
[网站打包]
修复了 空文件 时打包阻塞的问题。
[模板引擎]
加入了 “否则”标签的支持。判断时支持成功和失败分别显示不同内容。
[服务器请求]
加入了 是否存在参数 方法。可以判断指定名称的参数是否存在。
[服务器响应]
修复了 响应.置模板渲染路径 无效的问题(向爸)。
* 很抱歉,这是批量修改支持库接收易语言传递参数的方式引起的第二个问题,给大家带来不便希望能够谅解。
* 易语言支持库取参数的方式很麻烦,所以我做了一组宏简化大量工作,前期的一些功能也都改造为新宏的支持。
* 因为取值方式的不同,所以都是一个一个根据逻辑做的修改,每一个都很认真的,但是命令太多,没办法覆盖测试所有功能。
[存取键值表/存取列表]
JSON处理完善了一些特殊情况下生成和导入失败的情况。目前为止已可以处理所有中文数据。
取数量() 加入了参数。可取下级内容的数量。(番茄)
[路径处理]
路径_合并() 加入了多参支持,允许2个以上参数的路径连接。
[网站客户端]
升级到了最新版的CURL。
加入了 chunk 数据的读取算法,可解析 chunk 编码格式的数据。
* 相关方法:置启用CHUNK解码() / 是否启用CHUNK解码()
加入了 取响应头文本()方法。可以获取原始响应头文本(无论成功还是失败)。
修复了 POST 等上传文件无文件名导致的上传无效的问题。
修复了 POST 上传等特殊场景下默认使用UNIX换行符产生的问题(D-OWL)。
修复了 置请求头()方法无效的问题。
修复了 执行POST()时参数为空引起的崩溃问题(智慧人生)。
[ADODB数据库连接]
修复了 读取字节集数据时,内存不释放一直上涨的问题(智慧人生);
[1.7.38]
修复了所有示例。兼容1.7之后的版本。
优化了 Memcached支持。将 libmemcached 的内存分配器改成了易语言统一申请内存的方式。
修复了URI解析过程的一个逻辑陷阱。兼容中文等情况的URI二次解析可能出现的问题。
修复了XML解析等情况下得到的文本内容超出预计范围的问题。
修复了 模板编辑器 的若干问题。
1. 标签[正常输出]为空的情况
2. 包含文件列表为空的情况
修复了 通过后缀名获取文件列表的一些场景下,后缀名包含“.”无法得到文件列表的情况。
[1.7.37]
服务器响应对象加入了标准反馈信息的支持(API)。如果您希望把您的视图做为远程调用函数,强烈建议使用这组方法来写出反馈结果。未来E2EE也会提供更加完善的远程调用机制,也会将此反馈模型做为标准协议提供更多功能的支持。
响应.写出结果()
响应.写出成功()
响应.写出失败()
[网站客户端]
修复了设置HTTP请求头后再次执行请求崩溃的问题。
修复了针对JSON和JS的自动编码转换无效的问题(神6、物联科技)。
HTTP中返回的协议头里的Content-Type中,网站客户端只转换了 txt/ 开头的MIME类型,JSON和JS的MIME是以 application 开头的,特地加入了针对这种情况的支持。
[存取键值表]
优化了 合并到() 方法。结果将以 合并到 左边的键值表为主,强制覆盖 目标 键值表中所有主键名称相同的主键和添加不存在的主键内容。
加入了 置为空值() 方法。可设置主键对应的内容为 空 值。
[存取列表]
加入了 置为空值() 方法。可设置指定位置的内容为 空 值。
[1.7.36]
修复了设置Session的ID某些场景下无效的问题(用户首次系统自动产生SessionID时无法再次手动设置等情况)。允许同一次请求执行多次Session的ID设置,只使用最后一次的设置。
[数据库分页]
修复了查询到分页实际的分页尺寸永远为10条的问题。为啥没有人告诉我这个问题!!!(感谢 左边的石头)
[通用缓存对象]
在取键值表和列表的数据之前,加入了对象清空操作。避免取到脏数据。
[WebSocket服务器]
加入了 取客户地址 方法。可以获取客户的IP地址。
[1.7.35]
[网页内容解析器]
加入了 取下级文本/取下级内部文本 方法,可对选择结果进行二次筛选。
对应的示例[717]做了更新。
[网站客户端]
修复了 某些特殊环境下GET不受控制得不到HTTP响应头的内容(不知道是不是盗版引起)。
渲染() 方法加入了列表的立即值输出。
例如:
列表名为“名称组”,值为 ["a", "b", "c", 1, 2, 3]
则页面上可以使用
{{#名称组}}
{{名称组}} <= 直接使用列表的变量名即可直接输出变量的值
{{/名称组}}
[存取键值表]
加入了 子列表添加() 命令。可以对 键值表 中的列表值,进行 添加值 的操作。
[1.7.34]
修复了URL处理中路径包含中文和特殊符号等可能无法正确定位文件的问题。
存取列表 加入了 排序() 方法。具体查看[009 基础对象测试]下的“列表排序”示例。可通过列表内容进行多种形式的排序。
存取键值表 加入了 子列表排序() 方法。作用等同于 列表.排序()。
WebSocket客户端 加入了 置请求头() 方法。可以设置连接到服务器之后提交给服务器的HTTP头内容。
升级到最新版的易语言支持库开发SDK。
[1.7.33]
修复了 URL 解码时遇到的长度极值问题。之前的算法超过127位长度无法获取参数数据。
[1.7.32]
修复了URLEncoded类型的表单提交时解码的问题。
优化了内部流程中URL解码部分的逻辑。
[1.7.31]
[ADODB数据库连接池]
加入了 测试连接 方法。可以使用此方法测试指定数据库是否能够连接成功。
[存取键值表/存取列表]
JSON处理 修复了某些特殊文本(全角文本或字符)加载失败的问题。
[请求对象]
修复了 取参数()/取所有参数() 中包含 http:// 等关键字的参数解析失败的问题。
重构了URI解析算法。兼容性更好,效率更高。(实测平均每秒能够处理2000万次请求路径)
[数据库]
屏蔽了ADO查询到分页数据为空时,输出的错误信息内容。
[1.7.29]
改进了 静态编译 机制。
* 无论是静态编译EXE还是DLL,都能正确释放和调用原始库(因为是伪静态,机制等同于独立编译),不需要手动拷贝e2ee.fne到运行目录。
* 优化了原始库释放和调用流程,只有在临时目录无法使用且不存在原始库的情况下,才会释放原始库到运行目录。
修复了 文件列表 功能可能引起的崩溃问题(第三只眼)。
* 网站打包加入后,通用获取文件列表的接口遇到无后缀获取的情况,会导致空指针构造对象失败的问题。所有相关的文件和文件列表指令已经全部做了处理。
[1.7.28]
修复了 创建文本从时间 返回空白的问题(__{飛})
[1.7.27]
修复了线程池调用 URL编码/URL解码 可能会导致程序出错的问题(感谢 小蜗牛)。此问题是因为URL编码表延迟初始化引起。
修复了 通用缓存对象 使用内存时 设置过期时间失败的问题(感谢 kko)。
服务器辅助 中加入 GZIP压缩数据 和 GZIP解压数据 命令。
服务器辅助 中加入 LZMA压缩数据 和 LZMA解压数据 命令。(7Zip算法)
加入了 打包网站 和 解包网站 功能。
加入了 E2EE网站打包工具v1.0 工具辅助软件。
服务器加入了 服务器.读入文件() / 服务器.读入文本文件(),包括之前加入的 服务器.读配置文件() 都支持从打包的虚拟磁盘系统中直接读取文件内容。
优化了 WebSocket错误日志。防火墙等相关功能出现异常时,能直接输出具体错误入口和问题用户ip等信息。
建立了静态库自动构建流程,优化了静态库加载方案。新版的静态编译,E2EE库只占用2.4MB的空间,体积更小(7Zip的LZMA算法)。通过易语言“静态编译”生成的程序,不会再在运行目录释放“E2EECore.dll”,而是自动根据版本号释放到临时目录中。
[新增对象]
内存链接库:可直接从内存加载和调用动态链接库。
[1.7.20]
通用缓存对象的内存缓存重构为 内存池 技术。优化了LRU机制,早期更改的数据优先清理。
修复了默认404页面未设置传输编码造成的乱码问题。
修复了键值表和列表在某些情况下字节集数据转换文本可能产生崩溃的问题。
数据库连接对象加入了 锁定连接/解除锁定。可以锁定物理连接到当前连接对象。
数据库分页优化了分页机制,不再需要提供统计数量统计语句。
数据库分页优化了获取模板数据。模板数据中的分页列表可限制固定分页数量,自动追加分页列表本身的翻页内容。
重写了解析Cookie算法。(因为一些人的错误怪罪到我头上,白白重写了一遍,新算法测试的比较充分)
设置Cookie允许使用整数文本做为秒钟设置过期时间。如果过期时间为整数文本且大于0,则自动做为秒钟格式化GMT时间赋值给Cookie。
进一步增强了自动编码转换的功能。
修复了 是否手机用户() 判断可能产生崩溃的问题。原因是HTTP头不包含“User-Agent”时空指针调用引起的(yesit.cc)。
修复了 URL编码 等转换编码时指定编码无法转换的情况导致程序崩溃的问题(小蜗牛)。
修复了 创建二维码 参数错误时崩溃的问题(小蜗牛)。
加入了 文本编码转换() 命令。可使用 #文本编码格式_ 开头常量指定编码格式。
[服务器]
加入 读配置文件/写配置文件 方法。可读写网站[配置]目录下的文件。
[存取键值表]
加入 创建 方法。作用等同于 创建键值表(),执行本方法前数据会被清空。为了程序稳定性,建议尽量使用 创建 方法 替换 创建键值表() 函数。
修改 取键值表/取列表 为通过参数返回结果。(稳定性优化)
加入 表达式寻址操作。所有的数据读写可以使用JSON式路径操作,具体格式为“//” + 表达式。列表索引从1开始。具体格式可以参考JSON寻址格式:http://www.w3school.com.cn/json/json_syntax.asp 。如果您的主键名本身以“//”开头,请使用四个斜杠“////”做为起始来进行转义。JSON路径使用示例:
指向主键为“children”列表中的第一个元素://children[1]
其它示例://children[1].name;//cars.toyota.color;//jobs.tags[2]。
[存取列表]
加入 创建 方法。作用等同于 创建列表(),执行本方法前数据会被清空。为了程序稳定性,建议尽量使用 创建 方法 替换 创建列表() 函数。
修改 取键值表/取列表 为通过参数返回结果。(稳定性优化)
加入 表达式寻址操作。所有的数据读写可以使用JSON式路径操作,表达式中的列表索引从1开始。具体格式可以参考JSON寻址格式:http://www.w3school.com.cn/json/json_syntax.asp 。
示例:
[1] :指向列表第一项
[1].name :指向列表第一项下的键值表,对应的主键为 name 的值
[2].cars.toyota.color
[3].jobs.tags[2]
加入 CSV 格式的支持。相关方法:到CSV/从CSV载入。支持多种参数的CSV解析和生成。
[模板]
过滤器新增加两个命令:
HTML关键字编码()
HTML关键字解码()
[新增对象]
通用日志对象
XML文档对象
通用线程池对象
网站客户端
网页内容解析器
加解密对象
[1.6.10]
改进了WebSocket客户端。加入了wss的接口实现,将原始客户通讯对象改为接口模式。
进一步优化了HTTP头获取用户地址的功能。
[1.6.9.5]
修复了超长访问地址写入日志失败造成的崩溃问题。
修复了通过HTTP头获取用户地址失败的问题。此问题间接造成防火墙无拦截等情况。
问题描述:配置了[真实IP请求头]为X-Forwarded-For或X-Real-Ip时,从Nginx等反向代理软件中产生的请求,无法响应防火墙事件且 请求.取用户地址 为内网地址而非真实用户IP。
加入了[E2EE通用服务模块]。
* 将E2EE程序一句代码改造为系统服务。
* 内置服务管理功能。可安装、卸载、启动和关闭服务。
[模板]
修复了“_下标”和“_奇偶数”变量失效的问题(感谢 轻描●淡写~)。此问题是由目标模板编码引起的。
修复了“增减”过滤器在循环嵌套等情况下赋值失败的问题。此问题为变量作用域引起的。
[1.6.9.3]
模板编辑器升级到1.4。主要加入了变量搜索功能。
修复了模板编辑器无法加载资源的问题(感谢 剑侠情缘)。路由机制的优化跳过了编辑器模块,这个版本已经加上了编辑器模块。
[模板]
请求对象加入了 置模板渲染路径/取模板渲染路径。能够针对本次请求重置渲染模板文件。
[请求]
加入了判断请求是否来自手机的判断方法:请求.是否手机用户。
网站配置项加入了“手机UA表达式”配置项,可用来配置用于检测请求User-Agent的正则表达式。
[1.6.9.2]
修复了上个版本的路由机制问题(感谢 yes or no)。
问题描述:由于以前版本的路由路径为兼容正则表达式等,对路径做过预处理,导致在新的路由寻址机制中,包含“.”等的固定网址格式无法正确匹配,会导致请求这些路径时返回404错误。
修复了超过2G文件下载失败的情况(感谢 被封七号)。原因是文件尺寸超过整数最大值造成文件体积输出失败。
修复了邮件发送账号或密码为空导致的崩溃问题(感谢 心宇)。
完全兼容Apache的日志格式。可直接使用Apache日志分析工具对E2EE中的请求日志做分析处理。
[1.6.9]
重构了路由寻址机制。根据路由地址区分模块、域名、直接地址 和 正则,效率更高。
重写了GZip压缩算法。效率更高。
上传文件信息状态增加了“无上传文件”状态。
上传文件信息状态码为常量 #上传代码_无上传文件 时表示表单没有选择文件。
修复了多文件上传的问题(感谢[yes or no])。
原始问题表现为,在提交包含多文件的上传表单时,如果某些文件表单没有选择要上传的文件,可能会造成其他文件也上传失败。
修复了大文件在断点续传和浏览器下载等可能出现失败的情况(感谢 被封七号)。
具体症状使用迅雷下载无法顺利下载文件,或者使用chrome下载时总是卡住的情况。具体原因为流对象无阻塞时被忽略的情况。
[模板]
修复了模板数值判断永远失败的问题。可以进行准确的数值和变量判断运算。
[1.6.8]
加入通用日志对象(SoIdea)。
[通用日志对象]
多线程安全。
支持同时使用多日志适配器。可同时输出日志到控制台,易语言调试窗口,文件。
支持自定义日志格式。
支持的适配器类型:
* 文件适配器
* 回滚文件适配器
* Syslog适配器
* 系统日志适配器
* 调试日志适配器
* 易语言日志适配器
* 控制台适配器
支持日志输出类型:
* 信息日志
* 警告日志
* 错误日志
[模板]
加入了多条件支持。(碧水晾夏)
条件标签支持且或。
{{?a==b || a==c}}内容{{/a}}
{{?a==b && b==c}}内容{{/a}}
加入了过滤器支持。具体使用方式可以参考:http://www.jimstone.com.cn/e2ee/docs/ 的[模板和渲染]章节
使用方法:
{{标签 | 过滤函数([参数])}}
函数列表:
赋值([值内容])
增减([数量])
小数格式化([小数数量])
货币格式化([货币前缀])
时间格式化([格式化文本])
[存取键值表/存取列表]
修复了上个版本的JSON输出日期时间为空导致数据出错的问题。
[Cookie]
加入了Cookie设置时键值表多值的支持(yes or no)。允许一次设置多条Cookie项。
[请求]
加入了取所有请求头方法(海绵宝宝)。请求.取所有请求头()
[ADODB数据库连接]
优化了查询到自定义(碧水晾夏)。查询失败时清空自定义数据。
[1.6.7]
[服务器]
修复了路由并发时的函数调用引起的崩溃问题。
优化了路由最后一个级别的寻址,不会把网址中最后一个级别的变量定义,包含“/”的内容带进来了。
优化了编码自动转换部分。编码转换更加智能,指定编码转换失败时,编码系统会自动侦测编码类型,并且根据侦测结果做自动转换。
加入 是否运行() 方法可以判断服务器是否正在运行中。
[存取键值表/存取列表]
序列化和反序列化加入了长度和CRC自校验机制。
影响方法 存取键值表/存取列表 方法:
到字节集
从字节集载入
到Base64
从Base64载入
键值表加入 到表单文本() 方法。可将键值表直接生成请求用的表单文本
重写了JSON算法。JSON处理效率更高。实际测试应该是目前易语言所有JSON模块和支持库里效率最高的,键值表和列表具有原生JSON对象的序列和反序列化效率。
[邮件发送客户端]
加入内容分块模式(Multipart)的设置。该属性默认为真。发送的邮件内容能够指定是否以分块模式发送。对应的方法:
置分块模式
取分块模式
[1.6.6]
加入了多域名支持。使用方式:服务器.加载模块() 时[挂在路径]参数为 http://打头即可,例如:http://www.jimstone.com.cn/。(小蜗牛,谢友,碧水凉夏,SoIdea)
修复了多级容器时“_模块路径”变量不正确的问题。之前只关联到最后两个级别的相对路径。
修复了 目录列表 中的目录路径。之前的目录路径尾部不带“/”,会出现访问目录中的默认首页等文件时,页面文件加载失败的情况。(第三只眼)
加入了日志系统的英文名称日志文件名的支持。在英文风格时,日志文件名将自动使用英文命名。(子涵)
加入了 邮件发送客户端 对象。可发送HTML类型邮件,支持SMTP(s)-TLS类型的邮件发送,支持附件、别名 和 多收件人抄送人等功能。
[Session]
加入了把Session同步到Cookie的功能。使用方法,在配置中加入逻辑配置项:SESSION启用COOKIE同步。(KKO)
优化了 Session自动续约机制。超过3分钟后请求读取过Session网页时,会自动执行Session续约。
修复了Session过期时间不准确的问题。(谢友)
[通用缓存对象]
修复了内存过期后,使用 是否存在() 命令时依然返回真的问题。(谢友)
[模板]
模板编辑器变量等加入了“搜索”功能。(子涵)
修复了视图函数不存在模板文件而在全局函数中渲染崩溃的问题。(KKO)
修复了模板中引入多级文件时,引入文件不存在卡死的问题。(KKO)
修复只有一个字符等情况下渲染为空的情况。
[存取键值表/存取列表]
加入了JSON解析UNICODE的支持。可解析带\u的文本数据,并且自动转码。(SoIdea)
加入了 列表.取子列表() 功能 。能获取列表范围内的数据为新的列表。
修复了非字节集类型数据时调用 取字节集() 出错的问题。非字节集数据会被自动转换为文本型数据并返回文本转字节集之后的数据。(BrokenHeart)
[邮件发送客户端] (小蜗牛、心宇)
加入了 邮件发送客户端 对象。
兼容SMTP和SMTP(s)发送TLS类型的邮件。
支持附件功能。
支持HTML功能。
支持邮箱别名和多收件人、抄送人 和 密送人。
支持邮件回执功能。
[WebSocket]
服务端加入了 取请求路径 和 取请求头 方法。可获取原始HTTP中的 路径 和 请求头 数据。(碧水凉夏)
[示例]
修复了 留言本 默认Session机制为Memcached从而造成项目访问缓慢的问题。已将默认配置改为使用文件内存。(子涵)
[1.6] 更新说明
[网站服务器]
重写了 URL编码 和 URL解码 算法,效率提高了10倍。感谢 被封七号 提供的建议。新算法建立编解码索引表。对编码和不需要编码部分分别处理。
修复停止服务器可能会崩溃的问题。
修复服务器释放可能会崩溃的问题。
重构HTTP解析Multipart解析算法,解决Multipart类型内容过短无解析的问题。
修改日志系统 服务器.初始化() 之后便可正常使用。
加入Nginx等自定义地址列表获取原始客户IP地址的机制。能够获取Nginx等反向代理服务器中原始的用户地址信息。
加入了网站防火墙功能。防火墙为基础IP访问策略限制,能够有效防止普通的DDOS和CC攻击。可在[控制中心]中设置。
加入动态请求缓存机制。可对路由地址配置缓存机制。
加入静态文件请求缓存机制。可配置静态文件缓存时间和缓存内存大小。
重构了 Session系统,同时支持文件内存和Memcached。在多进程同端口时,结束第一个进程,第二个进程将共享被结束进程的Session信息。
优化了日志显示格式。
修复访问静态目录不带“/”时跳转404的问题。
修复访问模块不带“/”时自动匹配模块默认路径。例如:http://localhost/api 则 跳转到 api 模块对应的处理函数中。
修复 响应.取SessionID 命令。
加入文件上传限制。当文件超过尺寸或停用上传功能时,文件将不会写入磁盘。
加入了IPv6支持。绑定任意端口*时,加入[启用IPv6]配置就能通过IPv6启动网站,同时兼容IPv4。
优化了404返回。文件不存在时直接返回404页面内容而不做404请求的跳转。
加入了 请求.取线程句柄() 能过获取当前请求处理所在虚拟线程句柄。虚拟线程句柄从1开始,最大为您服务器的线程数设置。
加入了 网站服务器.取线程数量() 。在服务器启动后才能获取到真实线程数。
修复了缓存命中等情况下设置静态文件缓存时间的问题。文件过期检测时间静态文件是都会响应到。
修复了缓存对象取数据出现的内存未被回收的问题。此问题可能造成使用内存缓存对象,取数据时内存不停的缓慢增长。
加入 所有请求、静态文件、404等情况下自定义(预)处理。
使用方法:在订阅视图函数的路径参数中,使用 #请求地址变量_ 开头的常量。对应的视图函数返回“真”则表示请求已经处理,不再执行原始默认函数。
网站.订阅视图函数 (&视图_所有请求, #请求地址变量_所有请求, , )
网站.订阅视图函数 (&视图_静态请求, #请求地址变量_静态文件, , )
网站.订阅视图函数 (&视图_页面404, #请求地址变量_页面404, , )
优化了上传文件管理机制。当上传的文件未被使用时(未移动文件),在请求处理完成后将自动删除未使用的文件。
上传加入了 请求.取请求文件信息() 。可以获取上传文件的详细信息。
完善了上传文件信息。取所有上传文件() 和 取上传文件信息() 返回的内容中增加了 状态、代码 和 错误原因。
加入了 #上传主键_ 和 #上传代码_ 常量。
加入了防火墙事件和防火墙命令。防火墙事件在[网站服务器]和[WebSocket服务器]中通过“订阅防火墙事件”注册。网站服务器加入了“防火墙_拉黑用户”、“防火墙_取消拉黑”和“防火墙_是否拉黑”三个防火墙命令。
模板加入了session标签的注入。可直接在模板中使用 {{ _SESSION.名称 }} 进行变量注入
加入了 请求.属性表 注入到模板的功能。无论是否有渲染数据,在执行渲染时 请求 的属性表 都会被写入到模板中。
修复了无法接收JSON类型的数据的问题。现在可以正常接收POST的JSON数据。
修复了请求.取原始数据为空的问题。可获取提交的原始数据。
修复了GZIP压缩的问题。所有动态静态请求均正确响应动态GZIP压缩设置。
修复了静态文件缓存过期时间未正确响应的问题。静态文件缓存更新检测周期能够准确匹配设置。
加入了 服务器.取目录()/服务器.取文件路径()/服务器.移动文件() 三个服务器文件和路径处理方法。在上传等环境下使用更加方便。
修复了模板编码转换长度计算引起的网页生成不全的问题。
[存取键值表]
加入了二进制和文本序列化方法:加入 到字节集、从字节集载入、到Base64 和 从Base64载入 方法。
加入了 主键更名() 方法。可对键值表批量更改主键名称。
加入了 键值互换() 方法。可生成键值互换之后的新键值表。
[存取列表]
加入了二进制和文本序列化方法:加入 到字节集、从字节集载入、到Base64 和 从Base64载入 方法。
加入了 连接文本() 方法。可将当前列表直接通过连接文本输出为字符串。可以像 PHP 的 array().join(",")一样的方式连接列表所有条目。
加入了 主键更名() 方法。可对列表中的键值表直接批量更改主键名称。
[模板引擎]
重构模板引擎条件判断算法实现了 大于、小于、大于等于、小于等于等条件判断。
优化模板重载机制和模板渲染效率。模板渲染能够达到每秒5到10万次以上渲染次数。
修复了文件列表功能的支持。
修复模板编辑器的支持。
[对象映射中心]
修复ORM映射时内存申请尺寸的问题。在运行模式时某些情况下转换键值表到自定义数据结构,会导致程序挂掉,已彻底修复。
加入了对象映射多别名的支持。允许给字段名添加多个名称,同一个对象同时适用于从自定义名称表单项创建和映射到数据库对应字段。
[ADODB数据库连接池]
处理了连接池创建时没有映射中心会阻塞的问题。
连接池加入了[用户名]、[密码]、[是否UNICODE]和[连接初始化SQL]参数。
* [用户名]/[密码] 用于连接文本外设置用户名和密码
* [是否UNICODE] 用于所有的带参数SQL中的文本,用来确定是否为宽字符集存储(针对UTF8/UNICODE等字符集)
* [连接初始化SQL] 数据库连接创建成功后将自动执行此SQL
加入了数据库连接池超时重连机制。能够避免MySQL服务器超时,自动设置连接为sleep,从而无法在ADO连接中获取真实连接状态的问题。默认连接闲置时间超过1小时将自动释放连接。
修复了ADO连接池在未获得连接字符串的情况下初始化的池连接,可能造成的潜在偶然性崩溃问题。
加入了 ADO连接池 初始化时的连接检测。如果初始化时模板连接对象访问数据库失败,则连接池创建失败。
连接池加入了关键字符号的支持。不支持的数据库类型可自定义关键字符号。自定义关键字使用方式:ADODB数据库连接池.配置关键字符号 (“[”, “]”)
[ADODB数据库连接]
修复数据库操作中双精度小数和宽文本转换的问题。
优化了 ADO连接.执行(),加入了[更新行数]参数,能够获取实际数据更新的行数数量。
优化了 ADO连接查询和执行结果的判断处理。
加入了 ADO连接.查询() 增加了“字段信息”变量参数。只要SQL查询语句正确,无论是否存在值,都可以返回字段的名称和类型信息。
[WebSocket服务器]
加入了WebSocket服务器。
* 全面支持 RFC6455 规范
* 支持订阅通道和组播
* 支持给客户绑定任意属性
* 支持TLS(WSS)
* 线程安全
!!!由于现有的HTTP服务器没有实现HTTP2和多帧处理,所以暂时无法通过HTTP协议升级方式使用和HTTP服务器相同的端口,必须开启独立的WebSocket服务器端口。
加入了WebSocket防火墙功能。
优化了 WebSocket服务器 对象。修复了__stdcall引起的特殊场景下调用子程序错误的问题。修复了对象释放和服务器 停止() 方法等引起的问题。
[WebSocket客户端]
加入了 WebSocket客户端。全面支持 RFC6455 规范。
[通用缓存对象]
加入缓存接口和内存缓存的实现。
[全文索引引擎/全文索引文档]
加入了全文索引引擎的支持。支持Solr的常用操作和查询。
[数据验证器]
加入了验证器对象。可以用于数据验证表单验证等场景。
[文本过滤器]
加入了 文本过滤器 对象。可以进行文本批量替换或者非法关键字过滤等场景。
[示例项目]
新增示例:
加入WebSocket在线聊天室示例。
* 支持多房间
* 加入 在线用户数和用户列表 显示
* 加入 @用户 功能
* 加入 用户退出 消息推送
* 修复了不同用户同名时当前用户高亮色相同的问题
* 加入聊天记录持久化存储
加入HTTPS服务器(SSL)示例项目。
加入文件列表示例项目。
加入了 通用缓存对象 和 使用测试示例。通用缓存对象支持 内存缓存 和 Memcached分布式缓存。
[JimStoneCMS 和 调用示例]
加入了MySQL版本的支持。可在MySQL和SQLite之间无缝切换。
[对象工厂]
修复 创建列表() 函数文本参数内存被覆盖的问题。
修复 创建列表/创建键值对() 双精度小数和日期时间型类型无法匹配的问题。
加入了 创建验证码图像()功能。可以生成较复杂的验证码图片,适合大部分需要验证码的场景。普通的I7电脑上处理能力大概每秒能生成1100次左右的验证码图片。
加入了 创建验证码文本() 功能。可通过模板生成任意半角字符组成的任意长度验证码。
修复了创建键值表的潜在逻辑问题。在创建某些键值对失败时不会再出现崩溃的问题。
加入创建二维码和验证码的示例。
加入了 创建GUID文本() 函数可生成标准的UUID/GUID。
修复了创建文本()某些场景下出现乱码的问题。优化了效率输出文本更快。
[路径处理]
加入了 路径处理相关函数。支持针对路径和文件的各种处理和常规操作。
* 路径合并
* 路径取名称
* 路径取后缀名
* 路径取上级路径
* 路径取上级名称
* 路径是否为文件
* 路径是否为目录
* 路径格式化
* 路径复制目录
* 路径是否绝对路径
* 路径是否属于目录
* 路径取目录列表
* 路径取文件列表
* 路径取所有文件
* 路径创建多级目录
[其它]
加入了静态编译的支持(伪静态)。
合并个人版和高级版。E2EE将只保留一个版本。
加入了“请求头_”、“响应头_”、“配置项_”、“英请求头_”、“英响应头_”开头的五种类型的常量。
修复了随机数在同一秒内某些情况下产生重复的问题。影响主要为 创建验证码文本() 在循环等环境下会出现重复的问题。
修复了长时间运行时忽然替换新版本产生的崩溃问题。
[1.3]
模板编辑器:
优化模板编辑器运行机制。编辑器运行周期不依赖于服务器的重启。
加入快捷键(快捷键说明请参考官方文档)
加入服务器配置、请求参数和Cookies动态注入为模板变量的功能
加入编辑模式浏览器自动切换功能。通过修改服务器.置编辑模式 的状态更改,浏览器会自动切换到编辑/正常运行模式。(可在编辑器配置中关闭此功能)
加入编辑器配置。
编辑器允许手动更改效果渲染视图更新周期。
加入SQL存储过程动态传参:
所有数据库查询和执行的第二个参数更改为参数变量。相关的参数引用请往后做偏移处理(第二个参数前加个“,”)。
SQL参数可绑定数据类型。
加入“宽文本型”参数绑定。
加入快速SQL功能:
模板编辑器中可直接将SQL绑定到模板,SQL参数可直接注入为所有模板支持的相关变量。
模板功能:
修复条件判断中“!”开头的标签配对问题,允许使用取反{{?!变量}}{{/变量}}做条件判断。
加入变量和变量的等于判断。
优化 请求.取请求路径 命令加入[是否包含参数]参数。
修复 数据库连接.查询头条到自定义 命令。
数据库分页对象加入 取分页数据到模板格式() 方法。主要是方便生成统一格式的分页结果便于模板中使用。
重构了ORM对象映射保存机制。ORM加入宽文本支持。
服务器 对象加入 是否编辑模式 和 置编辑模式。随时在编辑和最终效果之间切换。
修复 ORM中逻辑型尺寸计算。
修复视图订阅标签检测问题。
SESSION保存机制优化为完成业务处理后统一保存。
重构了 MULTIPART 解析。
加入了 JSON/XML 等格式POST提交的支持。JSON会被自动映射为参数。
加入了 URL编码/解码的支持。详情见 请求.URL编码/URL解码 或 URL编码/URL解码。支持自定义编码格式。
加入了 时间和文本互转函数。命令 创建文本从时间/创建时间从文本。
修复了 ORM映射和数据库处理中的日期时间型转换格式混乱的问题。
加入了 请求.取发送数据 命令,可以获取用户发送的原始POST数据。
加入了 JimStoneCMS 内容管理系统。可用于正式项目使用。
[1.2]
加入模板编辑器
加入服务器编辑模式(使用 服务器.启动()第二个参数为真是开启编辑模式)
加入创建文本函数
加入创建二维码函数
加入日志监视工具1.0
|
评分
-
查看全部评分
|