我目前正在开发一个网站,它严重依赖大量的javascript来构建小部件。其中一些是苛刻的过程,例如运行定时器或时钟,所以我只希望这些脚本在激活相应的小部件时激活。我建议的解决方案是注释掉每个脚本块,并在窗口小部件处于活动状态时“取消注释”它们。
例如,如果我有一个倒数计时器小部件,我想让我的代码完全注释掉,直到用户点击小部件。当用户打开窗口小部件时,我希望相应的脚本变为“未注释”并执行。
有没有什么办法可以动态地在Javascript代码中以编程方式添加或删除注释标记?我正在寻找一些我可以使用的方法或命令;不是要求我在物理上改变代码的东西。
我在Google I / O会议演示中看到了这一点,所以我只是想知道是否有人知道如何。
答案 0 :(得分:4)
有更好的方法可以解决这个问题。如果您担心阻塞事件循环:确保窗口小部件无法访问事件循环,但必须通过您的框架才能访问它。这允许您“睡眠”一个小部件,停止它的所有事件。
要记住的另一件事是,当移除小部件时,您还必须清理他们已安排的任何事件,否则您将遇到“死”代码。因此,必须通过您的框架安排所有事件,以便在卸载窗口小部件时清理它们。
读取代码并将其加载到JavaScript引擎中,在该点之后修改代码将不执行任何操作。