刷新生产服务器上的angularjs更改时出现问题

时间:2013-12-19 14:38:13

标签: angularjs javascript-events page-refresh

当我对angularjs应用程序进行更改时,会出现重复出现的问题。问题是,如果我想对我所做的更改进行播种,我必须刷新页面。这是一个问题,因为我不希望我的用户必须刷新页面(他们可能不知道这样做)。他们可能认为该网站已被破坏。我可以遵循某种角度指令或流程,这样我的UI更改就可以反映在我的生产服务器上,而用户不必刷新页面吗?

2 个答案:

答案 0 :(得分:7)

您可以查看几种解决方案,

  1. 这里有一个类似的答案:
  2. AngularJS disable partial caching on dev machine

    引用该帖子上接受的答案:

      

    “这是一种始终自动清除缓存的方法   ng-view内容更改“

    myApp.run(function($rootScope, $templateCache) {
       $rootScope.$on('$viewContentLoaded', function() {
          $templateCache.removeAll();
       });
    });
    
    1. 此处也可以找到非角度解决方案:
    2. Force browser to clear cache

      引用该帖子的最佳答案(Fermin的回答):

        

      如果要查看css或js更改,一种方法是将_versionNo附加到   每个版本的css / js文件。 E.g。

           

      script_1.0.css script_1.1.css script_1.2.css等。

           

      您可以查看此链接,了解它的工作原理。

      我希望这些帮助。

      EDIT。 为了回复你的评论,我很抱歉上面没有用。

      也许您可以尝试实现类似于Trello的基于websockets的方法,在一段时间后,您要求用户更新其页面以接收系统的新更新或刷新其套接字连接是否已超时?根据您的设置,您可能会发现本教程很有用:http://www.html5rocks.com/en/tutorials/frameworks/angular-websockets/

答案 1 :(得分:0)

使用html2js可以更轻松地管理模板的版本控制。它是一个grunt插件,可以将所有模板加载到js文件中。下行是您无论需要加载的所有模板,好处是您已准备好在一个http调用上加载所有模板,并为它们提供一个缓存点。通过这种方式,您可以设置在新版本上重命名js文件,并在生产模板上刷新缓存。至于开发,这里的另一个答案就足够了。