B2B网络软件

标题: AIWROK软件Function导入方法实例演示 [打印本页]

作者: YYPOST群发软件    时间: 3 小时前
标题: AIWROK软件Function导入方法实例演示

AIWROK软件Function导入方法实例演示
AIWROK软件Function导入方法实例演示 B2B网络软件


AIWROK软件Function导入方法实例演示 B2B网络软件








  1. //🍎交流QQ群711841924群一,苹果内测群,528816639

  2. /**
  3. * =============================================================================
  4. * AIWROK 全局函数封装示例
  5. * =============================================================================
  6. * 本示例演示 AIWROK 平台5个核心全局函数的封装与使用
  7. * 1. printl() - 日志输出
  8. * 2. stop() - 停止脚本
  9. * 3. Import() - 导入JS文件
  10. * 4. setInterval() - 定时任务
  11. * 5. clearInterval() - 停止定时任务
  12. */

  13. // =============================================================================
  14. // 1. printl() 函数封装示例
  15. // =============================================================================

  16. /**
  17. * 基础日志输出函数封装
  18. * @param {*} msg - 任意类型的消息
  19. */
  20. function log(msg) {
  21.     printl(msg);
  22. }

  23. /**
  24. * 带时间戳的日志函数
  25. * @param {*} msg - 消息内容
  26. */
  27. function logWithTime(msg) {
  28.     var now = new Date();
  29.     var time = now.getHours() + ':' + now.getMinutes() + ':' + now.getSeconds();
  30.     printl('[' + time + '] ' + String(msg));
  31. }

  32. /**
  33. * 分级日志函数
  34. * @param {string} level - 日志级别 INFO/ERROR/WARN
  35. * @param {*} msg - 消息内容
  36. */
  37. function logLevel(level, msg) {
  38.     printl('[' + level + '] ' + String(msg));
  39. }

  40. /**
  41. * 日志对象数组打印
  42. * @param {Array} arr - 数组对象
  43. */
  44. function logArray(arr) {
  45.     printl('数组内容: ' + JSON.stringify(arr));
  46. }

  47. /**
  48. * 日志JSON对象打印
  49. * @param {Object} obj - JSON对象
  50. */
  51. function logObject(obj) {
  52.     printl('对象内容: ' + JSON.stringify(obj));
  53. }

  54. // =============================================================================
  55. // 2. stop() 函数封装示例
  56. // =============================================================================

  57. /**
  58. * 安全停止脚本函数
  59. * @param {string} reason - 停止原因
  60. */
  61. function safeStop(reason) {
  62.     printl('========== 脚本停止 ==========');
  63.     if (reason) {
  64.         printl('停止原因: ' + reason);
  65.     }
  66.     printl('等待进程安全回收...');
  67.     stop();
  68. }

  69. /**
  70. * 条件停止函数
  71. * @param {boolean} condition - 停止条件
  72. * @param {string} reason - 停止原因
  73. */
  74. function stopIf(condition, reason) {
  75.     if (condition) {
  76.         safeStop(reason);
  77.     }
  78. }

  79. /**
  80. * 错误停止函数
  81. * @param {Error} error - 错误对象
  82. */
  83. function stopOnError(error) {
  84.     printl('========== 发生错误 ==========');
  85.     printl('错误信息: ' + error.message);
  86.     stop();
  87. }

  88. // =============================================================================
  89. // 3. Import() 函数封装示例
  90. // =============================================================================

  91. /**
  92. * 导入工具函数文件
  93. * @param {string} filename - 文件名
  94. * @returns {string} 执行结果
  95. */
  96. function loadUtils(filename) {
  97.     printl('正在导入工具文件: ' + filename);
  98.     var result = Import(filename);
  99.     printl('导入完成');
  100.     return result;
  101. }

  102. /**
  103. * 导入配置文件
  104. * @param {string} filename - 配置文件名
  105. * @returns {string} 配置内容
  106. */
  107. function loadConfig(filename) {
  108.     printl('正在加载配置: ' + filename);
  109.     var config = Import(filename);
  110.     printl('配置加载成功');
  111.     return config;
  112. }

  113. /**
  114. * 批量导入文件
  115. * @param {Array} filenames - 文件名数组
  116. */
  117. function loadMultipleFiles(filenames) {
  118.     printl('========== 批量导入文件 ==========');
  119.     for (var i = 0; i < filenames.length; i++) {
  120.         printl('导入文件 ' + (i + 1) + '/' + filenames.length + ': ' + filenames[i]);
  121.         Import(filenames[i]);
  122.     }
  123.     printl('========== 批量导入完成 ==========');
  124. }

  125. // =============================================================================
  126. // 4. setInterval() 函数封装示例
  127. // =============================================================================

  128. /**
  129. * 创建心跳定时任务
  130. * @param {number} interval - 间隔时间(毫秒)
  131. * @returns {number} 任务ID
  132. */
  133. function startHeartbeat(interval) {
  134.     var id = setInterval(function() {
  135.         printl('♥ 心跳检测 - 系统运行正常');
  136.     }, interval);
  137.     printl('心跳任务已启动,ID: ' + id + ', 间隔: ' + interval + 'ms');
  138.     return id;
  139. }

  140. /**
  141. * 创建计数定时任务
  142. * @param {number} interval - 间隔时间(毫秒)
  143. * @returns {number} 任务ID
  144. */
  145. function startCounter(interval) {
  146.     var count = 0;
  147.     var id = setInterval(function() {
  148.         count++;
  149.         printl('计数: ' + count);
  150.     }, interval);
  151.     printl('计数任务已启动,ID: ' + id);
  152.     return id;
  153. }

  154. /**
  155. * 创建时间显示定时任务
  156. * @param {number} interval - 间隔时间(毫秒)
  157. * @returns {number} 任务ID
  158. */
  159. function startTimeDisplay(interval) {
  160.     var id = setInterval(function() {
  161.         var now = new Date();
  162.         var time = now.getHours() + ':' + now.getMinutes() + ':' + now.getSeconds();
  163.         printl('当前时间: ' + time);
  164.     }, interval);
  165.     printl('时间显示任务已启动,ID: ' + id);
  166.     return id;
  167. }

  168. /**
  169. * 创建自定义任务
  170. * @param {Function} func - 要执行的函数
  171. * @param {number} interval - 间隔时间(毫秒)
  172. * @param {string} taskName - 任务名称
  173. * @returns {number} 任务ID
  174. */
  175. function startCustomTask(func, interval, taskName) {
  176.     var id = setInterval(func, interval);
  177.     printl('任务 [' + taskName + '] 已启动,ID: ' + id + ', 间隔: ' + interval + 'ms');
  178.     return id;
  179. }

  180. // =============================================================================
  181. // 5. clearInterval() 函数封装示例
  182. // =============================================================================

  183. /**
  184. * 停止指定任务
  185. * @param {number} id - 任务ID
  186. * @param {string} taskName - 任务名称
  187. * @returns {boolean} 是否成功
  188. */
  189. function stopTask(id, taskName) {
  190.     var result = clearInterval(id);
  191.     if (result) {
  192.         printl('任务 [' + taskName + '] 已停止,ID: ' + id);
  193.     } else {
  194.         printl('停止任务失败,ID: ' + id);
  195.     }
  196.     return result;
  197. }

  198. /**
  199. * 停止多个任务
  200. * @param {Array} taskIds - 任务ID数组
  201. */
  202. function stopMultipleTasks(taskIds) {
  203.     printl('========== 停止多个任务 ==========');
  204.     for (var i = 0; i < taskIds.length; i++) {
  205.         clearInterval(taskIds[i]);
  206.         printl('任务 ' + (i + 1) + ' 已停止');
  207.     }
  208.     printl('========== 所有任务已停止 ==========');
  209. }

  210. /**
  211. * 安全停止任务(带检查)
  212. * @param {number} id - 任务ID
  213. * @param {string} taskName - 任务名称
  214. */
  215. function safeStopTask(id, taskName) {
  216.     if (id && id > 0) {
  217.         var result = clearInterval(id);
  218.         if (result) {
  219.             printl('✓ 任务 [' + taskName + '] 停止成功');
  220.         } else {
  221.             printl('✗ 任务 [' + taskName + '] 停止失败');
  222.         }
  223.     } else {
  224.         printl('✗ 无效的任务ID');
  225.     }
  226. }

  227. // =============================================================================
  228. // 综合示例演示
  229. // =============================================================================

  230. /**
  231. * 演示1: printl 基础用法
  232. */
  233. function demoPrintl() {
  234.     printl('========== 演示1: printl 基础用法 ==========');
  235.    
  236.     log('这是基础日志');
  237.     logWithTime('这是带时间戳的日志');
  238.     logLevel('INFO', '这是INFO级别日志');
  239.     logLevel('ERROR', '这是ERROR级别日志');
  240.    
  241.     var arr = [1, 2, 3, 4, 5];
  242.     logArray(arr);
  243.    
  244.     var obj = { name: 'AIWROK', version: '2.0' };
  245.     logObject(obj);
  246.    
  247.     printl('');
  248. }

  249. /**
  250. * 演示2: stop 基础用法
  251. */
  252. function demoStop() {
  253.     printl('========== 演示2: stop 基础用法 ==========');
  254.    
  255.     printl('注意: stop() 会停止整个脚本,实际使用时请谨慎');
  256.     printl('以下代码仅演示,不会实际执行 stop()');
  257.    
  258.     var errorCondition = false;
  259.     stopIf(errorCondition, '条件满足时停止');
  260.    
  261.     printl('');
  262. }

  263. /**
  264. * 演示3: Import 基础用法
  265. */
  266. function demoImport() {
  267.     printl('========== 演示3: Import 基础用法 ==========');
  268.    
  269.     printl('注意: Import() 需要实际存在的JS文件');
  270.     printl('以下代码仅演示语法,不会实际执行');
  271.    
  272.     var result = loadUtils('utils.js');
  273.     printl('导入结果: ' + result);
  274.    
  275.     var config = loadConfig('config.js');
  276.     printl('配置内容: ' + config);
  277.    
  278.     var files = ['tool1.js', 'tool2.js', 'tool3.js'];
  279.     loadMultipleFiles(files);
  280.    
  281.     printl('');
  282. }

  283. /**
  284. * 演示4: setInterval 基础用法
  285. */
  286. function demoSetInterval() {
  287.     printl('========== 演示4: setInterval 基础用法 ==========');
  288.    
  289.     var heartbeatId = startHeartbeat(2000);
  290.     Sleeper.second(6);
  291.    
  292.     var counterId = startCounter(1000);
  293.     Sleeper.second(4);
  294.    
  295.     var timeId = startTimeDisplay(3000);
  296.     Sleeper.second(7);
  297.    
  298.     var customId = startCustomTask(function() {
  299.         printl('自定义任务执行中...');
  300.     }, 1500, '自定义任务');
  301.     Sleeper.second(5);
  302.    
  303.     printl('');
  304.    
  305.     return [heartbeatId, counterId, timeId, customId];
  306. }

  307. /**
  308. * 演示5: clearInterval 基础用法
  309. */
  310. function demoClearInterval(taskIds) {
  311.     printl('========== 演示5: clearInterval 基础用法 ==========');
  312.    
  313.     stopTask(taskIds[0], '心跳任务');
  314.     Sleeper.second(2);
  315.    
  316.     stopTask(taskIds[1], '计数任务');
  317.     Sleeper.second(2);
  318.    
  319.     stopTask(taskIds[2], '时间显示任务');
  320.     Sleeper.second(2);
  321.    
  322.     stopTask(taskIds[3], '自定义任务');
  323.     Sleeper.second(2);
  324.    
  325.     printl('');
  326. }

  327. /**
  328. * 延迟工具函数
  329. * @param {number} seconds - 秒数
  330. */
  331. function Sleeper() {}
  332. Sleeper.second = function(seconds) {
  333.     var start = new Date().getTime();
  334.     while (new Date().getTime() - start < seconds * 1000) {
  335.         // 等待
  336.     }
  337. };

  338. /**
  339. * 主函数 - 运行所有演示
  340. */
  341. function main() {
  342.     printl('========================================');
  343.     printl('  AIWROK 全局函数封装示例');
  344.     printl('========================================');
  345.     printl('');
  346.    
  347.     demoPrintl();
  348.     demoStop();
  349.     demoImport();
  350.    
  351.     var taskIds = demoSetInterval();
  352.     demoClearInterval(taskIds);
  353.    
  354.     printl('========================================');
  355.     printl('  所有演示已完成!');
  356.     printl('========================================');
  357. }

  358. // 注意:主函数不再自动执行,由 start.js 控制调用时机
  359. // 如需自动运行,请取消下面这行的注释
  360. main();
复制代码







欢迎光临 B2B网络软件 (http://bbs.niubt.cn/) Powered by Discuz! X3.2