我正在学习angularjs,作为一个测试项目,我正在轮询一个返回活动进程列表(它们的pid)并显示这些进程的服务器。
客户端代码如下所示:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="static/angular/angular.js"></script>
<script>
function ProcessCtrl($scope, $http, $interval) {
$scope.ReloadData = function() {
var result = $html" target="_blank">http.get("processdata", {timeout:1000});
result.success(function(data,status,headers,config) {
$scope.processes = data;
});
}
$scope.ReloadData();
var stop = $interval(function(){$scope.ReloadData()}, 1000);
}
</script>
</head>
<body ng-app>
<div ng-controller="ProcessCtrl">
Processes:
<ul>
<li ng-repeat="process in processes">
{{process.pid}} is running
</li>
</ul>
</div>
</body>
</html>
这适用于Firefox和Chrome,但不太适用于Internet Explorer 11。
所有浏览器每秒都执行ReloadData方法,但IE11实际上并不从服务器获取流程数据。Firefox和Chrome确实每秒都会获取数据。我也可以在服务器的输出中看到这一点,它记录每个请求。
这三种浏览器都在result.success
中执行代码,但IE11仍在重复使用它第一次获得的旧数据,FireFox和Chrome使用新获取的数据。
我已经检查了IE11中的web控制台是否有警告或错误,但没有。
编辑:正如选择的答案所表明的,这是一个缓存问题。我已经让服务器向响应添加了一个值为“no cache”的“cache control”头。这就解决了问题。
为了防止任何缓存,我更喜欢使用$http.post。
请求可能被缓存,因为缓存GET请求是有效的。FF和Chrome可能由于运行开发工具或其他原因而禁用了缓存。您可以将时间戳附加为url查询字符串“processdata?”(新日期()).getTime()
,以查看是否存在缓存问题。
防止IE缓存的更漂亮的方法可以在这里找到:$http的角度IE缓存问题
问题内容: 我正在为教练创建一个网站,以通过使用社交媒体帮助人们拥有更健康的生活。目前,我正在通过ExpressJS服务器中的OAuth(前端为AngularJS)访问Twitter。 从AngularJS网站: 在200到299之间的响应状态代码被视为成功状态,并将导致调用成功回调。请注意,如果响应是重定向,则XMLHttpRequest将透明地跟随它,这意味着不会为此类响应调用错误回调。 我的
我的问题是,尽管我在SVG中添加了“display:inline”,但是IE11中带有文本的a-tag中的SVG仍然会进入下一行。 在a-tag上添加“display:flex”也不能正常工作--只是奇怪地破坏了文本 HTML:
问题内容: 我正在尝试使用jaxb- maven插件使用JAXB将多个XSD转换为不同包中的POJO。我已将其设置为使用多个执行块,然后执行第一个执行块,然后出现一条消息:模式或绑定文件中未检测到更改 这是我pom.xml的摘录: 这是我收到的错误消息: 如果我交换执行块,则第一个总是执行,其余两个块得到相同的消息。 关于如何解决这个问题的任何想法? 问题答案: 通过升级到版本1.6进行了修复 和
问题3:如果我使用@Schedured(initaildelay=10000,fixedrate=20000)而不是@PostConstruct注释,它将解决第一个问题,但是它将每20秒执行一次我的作业。 有线索吗?
这是我的减速器。Reducer具有可边写和可空写功能 EdgeWritable有4个整数,例如<71,74,7,2000>通信在71(FromID)到74(ToID)on 7(7月)2000(Year)之间。 映射器输出10787条记录到reducer,但reducer只输出1条。 我需要输出44个文件与44个月之间的时期从1998年10月至2002年7月。输出的格式应该是“out”+month+