gpt4 book ai didi

javascript - 如何使用 AJAX 输入 javascript 变量并在特定时间间隔更新 javascript 中的函数?

转载 作者:可可西里 更新时间:2023-11-01 14:44:03 25 4
gpt4 key购买 nike

在这里,我想通过获取值每三秒更新一次 init() 函数。我从另一个应用程序发送这些参数。我必须使用 AJAX 来更新位置点。那么现在该怎么做呢?如何从应用程序中获取值并在给定的时间间隔内更新位置?

<!DOCTYPE html>
<html>
<head>
<title>Track Page</title>
<style>
html, body {
height: 100%;
margin: 0;
padding: 0;
}
#map {
height: 100%;
}
</style>
</head>
<body>
<div id="map"></div>

<script src="https://maps.googleapis.com/maps/api/js?key=(I pasted my java script embed API KEY here)&callback=initMap"
async defer></script>

<script>
var marker;
var u_lat,u_lng;
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
center: {lat: u_lat, lng: u_lng},
zoom: 8
});
marker = new google.maps.Marker({
map: map,
draggable: true,
animation: google.maps.Animation.DROP,
title:'User',
position: {lat: u_lat, lng: u_lng}
});
marker.addListener('click', toggleBounce);
}
function toggleBounce() {
if (marker.getAnimation() !== null) {
marker.setAnimation(null);
} else {
marker.setAnimation(google.maps.Animation.BOUNCE);
}
}
</script>

</body>
</html>

编辑我可以这样写脚本吗

<script>
var http=new XMLHttpRequest();
var url="jsontext.txt";
var marker;
var user_lat,user_lng;
function initMap() {

http.onreadystatechange = function(){
if(http.readyState == 4 && http.status == 200){
var coordinates=JSON.parse(http.responseText);
user_lat=coordinates.latitude;
user_lng=coordinates.longitude;
}
}
http.open("GET",url,true);
http.send();

var map = new google.maps.Map(document.getElementById('map'), {
center: {lat: user_lat, lng: user_lng},
zoom: 8
});
marker = new google.maps.Marker({
map: map,
draggable: true,
animation: google.maps.Animation.DROP,
label:'Driver1',
position: {lat: user_lat, lng: user_lng}
});
}
</script>

最佳答案

您可以使用 setTimeoutclearTimeout 函数。

timer = setTimeout(function(){
// Do the ajax call
}, 3000);

使用此功能,您可以为您的 ajax 调用设置超时并执行您需要的所有操作。

当您完成或发生错误或需要重置计时器或其他任何事情时...您可以使用 clearTimeout(timer) 来删除计时器。

* 编辑 *

这是您需要的工作流程:

初始化函数

init 函数创建一个计时器,该计时器对 Controller (请参阅 Controller)进行 ajax 调用,该 Controller 返回您可以处理的 JSON 格式。

例子:

$.ajax({
url: 'my/url/to/action.php',
type: 'POST', // Use always POST for security purposes
data: {
parameter1: value1,
parameter2: value2, // These are the parameters passed to the controller
parameter3: value3,
},
dataType: 'json',
complete: function (jqXHR, textStatus) {
// something to do on ajax request completed
},
success: function (response) {
// Refresh the marker with the values returned on the response
},
error: function (jqXhr, textStatus, errorThrown) {
// something to do if the controller returns error
}
});

Controller

这是后端部分,您需要一个 Web 服务以 JSON 格式返回您需要的值。

例如,您可以在 google 上轻松找到许多关于如何对 PHP Controller 进行 ajax 调用的教程...我希望这就是您要找的内容

关于javascript - 如何使用 AJAX 输入 javascript 变量并在特定时间间隔更新 javascript 中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33009858/

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