Javascript 手动引导过程中我做错了什么?

Javascript 手动引导过程中我做错了什么?,javascript,angularjs,Javascript,Angularjs,我正在一个项目中使用Angular 1.7.2。(我更喜欢角度1.x) 我手动执行引导过程(因为我以编程方式添加脚本) 但是,手动引导过程有两个问题 我必须使用setTimeout,否则引导程序将无法工作。我的问题是,我添加到项目中的文件越多,超时时间就越长 有时,当我加载网页或刷新站点时,并非所有组件都已加载。如果我监控网络流量,我有时会发现根本无法检索html文件。控制台中没有任何错误 在我看来,angular.boostrap过程中肯定发生了一些失败或卡住的事情,但我无法理解 对于我的第一

我正在一个项目中使用Angular 1.7.2。(我更喜欢角度1.x)

我手动执行引导过程(因为我以编程方式添加脚本)

但是,手动引导过程有两个问题

  • 我必须使用setTimeout,否则引导程序将无法工作。我的问题是,我添加到项目中的文件越多,超时时间就越长
  • 有时,当我加载网页或刷新站点时,并非所有组件都已加载。如果我监控网络流量,我有时会发现根本无法检索html文件。控制台中没有任何错误
  • 在我看来,angular.boostrap过程中肯定发生了一些失败或卡住的事情,但我无法理解

    对于我的第一个问题,为什么需要setTimeout,有没有办法不需要它

    第二,为什么我的网站有时不加载

    这可能与操作系统因为我的计算机上运行的所有源代码管理、防病毒和其他服务而临时锁定文件有关吗?如果是,我怎么知道

    我编写了一个带有相关代码的测试项目

    我以前认为这与布线有关,但它不是(),但它似乎毕竟与角度布线无关

    任何信息都将不胜感激,这让我发疯

    更新1: 我有代码在上面运行

    复制这个问题的最佳机会是使用谷歌浏览器,输入url,打开开发工具(f12),然后实际加载url。有时,页面无法完全加载


    我已经更新了测试网站,以更好地反映我的项目,在那里我动态添加脚本。

    我想我找到了解决方案,这多亏了

    我移动了我的app.route.js文件,以便在我的任何角度组件和指令之前加载,根据我所知,这解决了我的问题


    我也将更新链接的示例项目

    当文档准备好时,您是否尝试放置引导代码?为什么在正文中添加脚本?@LuizCarlos我将引导代码放置在代码中,如下所示:(函数(){…})();只有在文档准备好后才会执行。@PetrAveryanov我读到最好将脚本放在正文中。我在头上试过了,没什么区别你有比赛条件。如果您在日志工作的页面和不工作的页面之间查看日志,则日志的顺序不同。它与解析
    app.route.js
    的时间有关。我不知道你为什么要这样加载脚本。为什么不使用一个gulp脚本来创建一个缩小的/丑陋的包,并立即加载所有内容?