上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖

请问怎么正确的处理脚本生命周期

[复制链接]
  • TA的每日心情
    慵懒
    2024-3-8 11:53
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    4

    主题

    9

    回帖

    18

    积分

    助理工程师

    积分
    18
    发表于 2024-3-8 11:52:28 | 显示全部楼层 | 阅读模式
    悬赏2油猫币未解决

    在文档中提到了如何指定脚本的运行时机,具体可参见 ScriptCat 文档

    对于我的不同代码块,它们各自有着不同的运行时机需求:

    1. ajaxHooker代码块:

      • ajaxHooker 需要尽可能早地注入,以便拦截所有请求。因此,它需要在文档开始加载时就运行,这要求脚本在 document-start时运行。
    2. Vue代码块:

      • Vue 代码应当在 DOM 完全加载后才注入并在页面中注册,这要求脚本在 document-end 时运行。
    3. pageHacker代码块:

      • 一些业务代码,pageHacker 旨在对页面本身的计时器或者 proxy 进行拦截和篡改。为确保页面已完全加载,此代码应在页面加载进入空闲状态后执行,这要求脚本在 document-idle运行。

    鉴于上述不同的需求,处理这种情况的一个方法是脚本分割成几个独立的脚本,每部分根据其需要的运行时机来设置。这意味着可能需要创建三个独立的脚本文件,每个文件都使用相应的 @run-at 指令来满足其特定的运行时机需求

    我想放到一个文件里,我该怎么做呀?

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5961

    回帖

    6760

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6760

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2024-3-8 12:02:54 | 显示全部楼层
    要理解每个参数都是干什么的
    document-start是抢注
    抢注之后不就可以直接用js监听其他命令事件了,不要局限于声明
    document-end等价于
    document.addEventListener("DOMContentLoaded", (event) => {
      console.log("DOM fully loaded and parsed");
    });

    document-idle等价于(这个不是完全等价)
    document.addEventListener("load", (event) => {});
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-3-8 11:53
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    4

    主题

    9

    回帖

    18

    积分

    助理工程师

    积分
    18
    发表于 2024-3-8 13:14:36 | 显示全部楼层
    李恒道 发表于 2024-3-8 12:02
    要理解每个参数都是干什么的
    document-start是抢注
    抢注之后不就可以直接用js监听其他命令事件了,不要局限 ...

    好的,谢谢大佬。

    我还有一个问题。

    @require与脚本内部的JavaScript代码的运行顺序是怎么样的?

    当我引入一个延迟比较高的@require资源的时候,会不会阻塞脚本内容的加载?
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5961

    回帖

    6760

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6760

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2024-3-9 01:31:10 | 显示全部楼层
    cvpv 发表于 2024-3-8 13:14
    好的,谢谢大佬。

    我还有一个问题。

    会阻塞的
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

    发表回复

    本版积分规则

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