开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 14598|回复: 26
收起左侧

[易语言成品模块] 【更新】SOCC.js 2.1版,更加方便地使用JS引擎

[复制链接]

结帖率:100% (4/4)
发表于 2021-7-4 16:00:34 | 显示全部楼层 |阅读模式   四川省宜宾市
分享例程
界面截图:
备注说明: SOCC.js
更加方便地使用JS引擎

前言:

理念:

  • SOCC.js的基本理念是实现更方便的执行JS,让普通的JS可以编写更强大的程序。

目标:

  • 封装JSON(已经完成,JS实现)
  • 封装XMLHttpRequest类(已经完成,支持异步使用,除了几个事件外基本和浏览器的XMLHttpRequest对象一致,native code封装)
  • 自定义新函数(基本完成,仍需完善,native code封装)
  • 封装console对象(已经完成,native code封装)
  • 封装Compress对象(已经完成,native code封装)
  • 封装FileSystem对象(已经完成,native code封装)
  • 封装Base64对象(已经完成,native code封装)
  • 封装Error管理,当JS代码出错时可以提示错误内容(已经完成,native code封装)
  • 封装window对象(未完成,计划中)
  • 封装document对象(未完成,计划中)
  • 封装navigator对象(未完成,计划中)
  • 封装图色对象(未完成,计划中)
  • 封装加密解密对象(未完成,计划中)
  • 不信可以看看图:

更新内容:

  • 更新封装模式,采用更快捷而方便的模式重封装了XMLHttpRequest类,FileSystem对象,Base64对象,Compress对象
  • 新增:FileSystem.e,Error.e,Base64.e,Compress.e,实战测试.e 等例子
  • 图片:
    • FileSystem:
    • Error:
  • 下面介绍SOCC.js已经封装的类和命令

SOCC.js:

  • 封装的类以及命令的介绍:
    • Base64类(本类无需使用new调用,直接使用即可):本类包括2个命令
    • 命令表:
      • Base64.encode()本命令包含2个参数,分别是:待编码数据 和 编码类型,本命令的返回值为String。
        • 待编码数据:类型为String,表示待编码数据。
        • 编码类型:类型为BOOL,为true表示编码Ansi,为false表示编码Unicode(UTF-16)
      • Base64.decode()本命令包含2个参数,分别是:待解码数据 和 编码类型,本命令的返回值为String。
        • 待解码数据:类型为String,表示待解码数据。
        • 编码类型:类型为BOOL,为true表示编码Ansi,为false表示编码Unicode(UTF-16)
    • XMLHttpRequest类(本类的封装和浏览器的XMLHttpRequest类基本一致,本类需要使用new方法调用):本类封装了5个属性,6个命令,1个事件
    • 属性表:
      • XMLHttpRequest.status:只读,返回一个无符号短整型数字,代表请求的响应状态。
      • XMLHttpRequest.statusText:只读,返回一个 DOMString,其中包含 HTTP 服务器返回的响应状态。与 XMLHTTPRequest.status 不同的是,它包含完整的响应状态文本(例如,"200 OK")。
      • XMLHttpRequest.responseXML:只读,返回一个 Document,其中包含该请求的响应,如果请求未成功、尚未发送或时不能被解析为 XML 或 HTML,则返回 null。
      • XMLHttpRequest.responseText:只读,返回一个 DOMString,该 DOMString 包含对请求的响应,如果请求未成功或尚未发送,则返回 null。
      • XMLHttpRequest.readyState:只读,返回 一个无符号短整型数字,代表请求的状态码。
    • 命令表:
      • XMLHttpRequest.abort() 如果请求已被发出,则立刻中止请求。
      • XMLHttpRequest.getAllResponseHeaders() 以字符串的形式返回所有用 CRLF 分隔的响应头,如果没有收到响应,则返回 null。
      • XMLHttpRequest.getResponseHeader() 返回包含指定响应头的字符串,如果响应尚未收到或响应中不存在该报头,则返回 null。
      • XMLHttpRequest.open() 初始化一个请求。
      • XMLHttpRequest.send() 发送请求。如果请求是异步的(默认),那么该方法将在请求发送后立即返回。
      • XMLHttpRequest.setRequestHeader() 设置 HTTP 请求头的值。必须在 open() 之后、send() 之前调用 setRequestHeader() 方法。
    • 事件表:
      • MLHttpRequestm.onreadystatechange:当 readyState 属性发生变化时,调用的 event handler
    • Compress类(数据压缩类,使用RtlCompressBuffer相关命令完成,本类需要使用new方法调用):本类封装了2个命令
    • 命令表:
      • Compress.Compress()(压缩数据) 本命令包含1个参数,为:Data,本命令的返回值为String(返回Base64编码后的文本)。
        • Data:类型为String,欲压缩的数据。
      • Compress.Decompress()(解压数据) 本命令包含1个参数,为:Data,本命令的返回值为String(返回解压后的文本数据)。
        • Data:类型为String,欲解缩的数据(只接受Base64编码后的数据,只接受Compress.Compress的压缩结果)。
    • FileSystem类(文件控制类,使用CreateFile相关命令完成,本类需要使用new方法调用):本类封装了14个命令
    • 命令表:
      • new FileSystem()(初始化FileSystem类时即需要提供参数) 本命令包含2个参数,分别是:文件名 打开方式 共享方式,本命令的返回值为文件控制对象([Object FileSystem])。
        • 文件名:类型为String,欲打开的文件名称
        • 打开方式:类型为int,1、#读入,2、#写出,3、#读写,4、#重写,5、#改写,6、#改读,默认为读写
        • 共享方式:类型为int,1、#无限制,2、#禁止读,3、#禁止写,4、#禁止读写,默认为 #无限制
      • FileSystem.close() 本命令无参数,表示关闭使用的文件系统(内部使用CloseHandle实现),关闭后对应的文件控制对象作废,无返回值。
      • FileSystem.FSeek() 本命令包含2个参数,分别是:起始移动位置 移动距离,成功返回新位置。
        • 起始移动位置:类型为int,参数值指定从文件中开始移动的位置。可以为以下常量之一:1、#文件首; 2、#文件尾; 3、#现行位置。如果本参数被省略,默认值为“#文件首”
        • 移动距离:类型为int,参数值指定相对于起始移动位置的移动长度。
      • FileSystem.GetFileSize() 本命令无参数,表示取打开的文件的大小,返回文件大小。
      • FileSystem.ReadBin() 本命令包含1个参数,为:欲读入数据的长度,成功返回读入的字节集数据(内部已经进行了一次Base64编码)。
        • 欲读入数据的长度:类型为int,表示欲读入字节集的长度。
      • FileSystem.WriteBin() 本命令包含1个参数,为:欲写出的字节集数据,成功返回实际写出字节数。
        • 欲写出的字节集数据:类型为String,只接受Base64编码后的数据。
      • FileSystem.loc() 本命令无参数,表示当前读写位置,返回当前读写位置。
      • FileSystem.feof() 本命令无参数,表示当前读写位置是否在文件尾,成功返回真,失败返回假。
      • FileSystem.SeekToBegin() 本命令无参数,表示移动读写位置到文件首,成功返回真,失败返回假。
      • FileSystem.SeekToEnd() 本命令无参数,表示移动读写位置到文件尾,成功返回真,失败返回假。
      • FileSystem.FlushFileBuffers() 本命令无参数,刷新文件内部缓冲区并将所有缓存数据写入文件,成功返回真,失败返回假。
      • FileSystem.SetFileSize() 本命令包含1个参数,为:新文件大小,本命令可以扩大或者缩小文件,扩大文件操作不会修改文件内容(如果缩小文件的话多余的内容会被删除)。成功返回真,失败返回假。
        • 新文件大小::类型为int
      • FileSystem.lock() 本命令包含2个参数,分别为:起始锁定位置 锁定字节长度,本命令可以锁定文件的指定范围,以便于对这个范围进行独占访问,成功返回真,失败返回假。
        • 起始锁定位置:类型为int,锁定文件的开始位置。
        • 锁定字节长度:类型为int,锁定文件的字节长度。
      • FileSystem.Unlock() 本命令包含2个参数,分别为:起始解锁位置 解锁字节长度,本命令可以解除对文件指定范围的锁定,以便其他进程能访问这个区域,成功返回真,失败返回假。
        • 起始解锁位置:类型为int,解锁文件的开始位置。
        • 解锁字节长度:类型为int,解锁文件的字节长度。

PS:

  • SOCC.js引擎是我最近封装的一个程序,可能存在一些未知的BUG,您可以在本帖反馈程序BUG
  • 您也可以在帖子下面提出封装的目标(如:还可以封装什么)

程序下载:


SOCC.js.ec.zip (2.41 MB, 下载次数: 73)

评分

参与人数 3好评 +2 精币 +8 收起 理由
萌新a + 1 新技能已get√
网络注册会员 + 1 + 3 新技能已get√
ノ朽默℡ + 1 + 4 感谢分享,很给力!~

查看全部评分


友情提醒:请选择可信度高的模块,勿用未知模块,防止小人在模块内加入木马程序。【发现问题模块请到站务投诉】。

本帖被以下淘专辑推荐:

  • · 鱼木|主题: 1546, 订阅: 151
结帖率:77% (10/13)

签到天数: 8 天

发表于 2022-1-17 10:21:51 | 显示全部楼层   福建省福州市
#在这里快速回复#  新技能已get√
回复 支持 反对

使用道具 举报

发表于 2021-7-13 22:38:40 | 显示全部楼层   湖北省天门市
#在这里快速回复#  新技能已get√
回复 支持 反对

使用道具 举报

结帖率:100% (6/6)

签到天数: 9 天

发表于 2021-7-9 15:05:04 | 显示全部楼层   安徽省滁州市
看看,顺便学习下
回复 支持 反对

使用道具 举报

结帖率:86% (12/14)
发表于 2021-7-8 02:33:54 | 显示全部楼层   浙江省金华市
楼主辛苦了,谢谢楼主,感谢楼主分享,楼主好人一生平安!!!
回复 支持 反对

使用道具 举报

结帖率:67% (2/3)

签到天数: 20 天

发表于 2021-7-7 16:52:21 | 显示全部楼层   贵州省黔南布依族苗族自治州
       感谢分享,很给力!~
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)

签到天数: 11 天

发表于 2021-7-6 21:22:01 | 显示全部楼层   山东省淄博市
666666666666666
回复 支持 反对

使用道具 举报

结帖率:0% (0/3)

签到天数: 19 天

发表于 2021-7-5 15:50:09 | 显示全部楼层   重庆市重庆市
再封装rsa加密之类的加密解密哈希之类的
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)
发表于 2021-7-5 14:58:34 | 显示全部楼层   浙江省宁波市
        感谢分享,很给力!~
回复 支持 反对

使用道具 举报

结帖率:30% (6/20)

签到天数: 8 天

发表于 2021-7-5 07:47:45 | 显示全部楼层   江西省九江市
再封装rsa加密之类的加密解密哈希之类的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表