gpt4 book ai didi

javascript - 如何在 AngularJS 中为 Comet 编写 "Hello, world!"?

转载 作者:行者123 更新时间:2023-11-28 08:23:21 25 4
gpt4 key购买 nike

我已经研究过了,但没能找到如何在 AngularJS 中处理基本的 Comet 概念验证。我正在研究客户端通过重复 Ajax 调用实现的 Comet,而不是流式 JavaScript。

如果我有服务器端 CGI:

#!/bin/bash
echo "Content-type: application/json"
echo ""
echo "'"Hello world at "`/bin/date`"'!'"'"

什么是基本的 AngularJS 概念证明,每秒都会查询服务器,并对网络延迟等进行取模,显示“Hello world!”包括服务器时间?

最佳答案

笨蛋

http://plnkr.co/edit/6kpLplq5hy9e2sXMaEsG?p=preview

HTML

<!DOCTYPE html>
<html>

<head>
<script data-require="angular.js@*" data-semver="1.2.15" src="http://code.angularjs.org/1.2.15/angular.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>

<body ng-app="myApp" ng-controller="MyCtrl">
{{data.theDate}}
</body>

</html>

JS

angular.module("myApp", []).service("UpdatingService", function($http, $timeout){
var service = {
data:{},

getData:function(){
$http.get("someData.json").success(function(result){
angular.copy(result, service.data)
service.data.theDate+=" "+new Date();
});
}
};

cancelRefresh = $timeout(function myFunction() {
service.getData();
cancelRefresh = $timeout(myFunction, 1000);
},1000);


return service;
}).controller("MyCtrl", function($scope, UpdatingService){
$scope.data = UpdatingService.data;
});

因此,我在上面展示了我通常会如何执行此操作。首先创建一个处理请求和存储数据的服务。然后制作一个 Controller 并注入(inject)所述服务。在服务中从 Angular 注入(inject) $http 和 $timeout 服务,以便我们可以发出 ajax 请求并可以重复请求,从而轮询服务器。由于没有真正的 setInterval,$timeout 回调会创建一个新的 $timeout 来继续循环,因此如果您需要在某个时刻停止计时器,则可以使用 cancelRefresh,详细信息请参见下面的链接。

using setInterval in angularjs factory

关于javascript - 如何在 AngularJS 中为 Comet 编写 "Hello, world!"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22724873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com