- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Django、Leaflet、OSM 和 jQuery 开发一个应用程序。该应用程序显示带有标记的 map 和包含所有标记数据(时间、纬度、经度)的表格。
我想在不重新加载整个页面的情况下自动更新表格和 map 标记(我基本上想消除 map 瓦片图层的 flickr,并且数据库不断被 model.py 中的一些随机生成的数据更新) , 但我遇到了以下问题。
当我使用
refresh()
时只在 table 上,不知何故我的整个包装器 div 递归地嵌入到我的表 div 中,并且所有内容( map 和表格)都会刷新。
我写了一个 updateMarker() 函数来更新我的标记,但它似乎不起作用。
我的 setInterval 时间间隔为 5 秒,但 div 实际上并不是每 5 秒刷新一次。更像是每 1/2 秒或太快的速度。
由于我的应用连接到 OSM 以获取 map 图 block ,所有这些“GET”查询是否有可能耗尽我的带宽?让程序运行一段时间后,我意识到我无法再加载谷歌,而且 wifi 仍然很好。过了一会儿,localhost 开始疯狂崩溃。我重新启动了我的计算机两次并检查了互联网设置 5 次,当我启用了与 map 相关的脚本时,localhost 仍然崩溃。然而,当我注释掉代码的 map 部分时,我的本地主机在大多数情况下似乎都很好,只是有点不稳定,问题 #3 仍然存在。
编辑:添加到 #4,每次我现在启动 runserver(使用 map相关代码),终端输出卡在
[14/Aug/2013
和本地主机只是去哇,快照。 :(
03:42:01] "GET /static/js/jquery-1.10.2.min.map HTTP/1.1" 404 1744
更多编辑:它自己修复了??!我什么都没做……
EDITED 刷新 AJAX 代码:
function refresh() {
$.ajax({
url: '/#table',
success: function(data) {
$('#result').html(data); //adding an extra #result div to wrap #table
setInterval(refresh, 5000); //actually setting the refresh rate to 5s...
}
});
}
setInterval(refresh, 5000);
已编辑 updateMarkers
在我的 .js 文件中,
// group markers to a layer and add the layer to map
function updateMarkers(LatLngArray) {
// if (myLayer){
// map.removeLayer(myLayer);
// }
$.ajax({
url:'/#map',
success: function(){
for (i=1;i<=LatLngArray.length;i++) {
myIcon = L.icon({iconUrl: 'https://chart.googleapis.com/chart?chst=d_map_pin_letter&chld='+i+'|666699|FFFFFF'});
layArray.push(L.marker([LatLngArray[i].lat, LatLngArray[i].lng], {icon: myIcon}).bindPopup('<center><br>[LatLngArray[i].lat, LatLngArray[i].lng}}]</center>'));
}
myLayer = L.layerGroup(layArray);
map.addLayer(myLayer);
}
});
}
另一个有点相关的问题,我关注了OSM's Leaflet Guide尝试设置“用户平移时显示标记”功能,但它不起作用。当我在 map 上平移时,比如说从美国开始向东移动直到我再次看到美国,我从另一边在美国的所有标记都不再可见。我真的只是复制了代码。 initmap()
里面函数看起来像这样:
function initmap() {
// create the tile layer with correct attribution
var osmUrl='http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
var osmAttrib='Map data © OpenStreetMap contributors';
var osm = new L.TileLayer(osmUrl, {minZoom: 2, maxZoom: 15, attribution: osmAttrib});
// start the map centering around the mediterrean
map = new L.Map('map', {
center: new L.LatLng(37.16, 18.87),
zoom: 2,
layers: [osm]
});
askForPlots();
map.on('moveend', onMapMove);
}
抱歉发了这么长的帖子...我现在真的不能做太多,因为我的 chrome 仍然显示 Aw,Snap!
最佳答案
O.o 这么长的帖子
让我们从 当我只在表格 div 上使用 refresh() 时开始......
您确定使用您的 ajax 函数吗?我宁愿做这样的事情:
function refresh() {
$.ajax({
url: '/ #table', // this should grab only #table element...
success: function(data) {
// ...and it will insert it inside #result element
$('#result').html(data);
setTimeout(refresh, 5000);
}
});
}
setTimeout(refresh, 5000);
html结构更新:
<div id="result">
<div id="table">
...
关于javascript - AJAX 刷新、setInterval 计时和本地主机崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18228130/
这个问题已经有答案了: JavaScript closure inside loops – simple practical example (45 个回答) 已关闭 8 年前。 我试图创建多个 se
这是我的情况,我需要加快函数运行时间,所以 setInterval 不是一个明智的选择,对吧?因为每次至少要花费 4 毫秒。 所以,我可以将 setInterval 函数更改为 requestAnim
我正在尝试下面的代码,看看是否可以将 setInterval Id 存储为关联数组中唯一键的值,然后通过使用唯一值作为键来停止被调用函数中的间隔,如下所示我将 setInterval Id 作为它的值
我花了很长时间试图弄清楚如何使用具有 CSS 样式缓动功能的 Google Maps API 为折线上的符号设置动画。我让它工作 with this Gist和 this Google Maps AP
我是这里的 JS 新手,正在研究一个在给定时间段后开始的倒数计时器。基本上,当用户单击按钮时时钟开始,第二个时钟在第一个计时器用完时开始。我知道“setInterval”是完成这个的最好方法。我面临的
嗨, friend 们,我想只使用一个 setInterval 函数来运行我的代码。目前我正在使用两个 setInterval's 来实现我的目标,我们可以只使用一个 'setInterval' 来获
我的“setInterval”函数有问题,我想在将鼠标悬停在 div 上时启动该函数,但是 setInterval 在我将鼠标悬停在 div 上时第一次起作用=>如果我停留在div,它不会继续改变图片
我想展示两次:一次在你的国家,一次在日本用JS 问题是第二个 setInterval 停止了第一个,我不知道如何进行两次运行。 完整代码 In your region:
好吧,这个问题有几个问题。 首先,我要求 setTimeout() 和 setInterval() 我见过几种不同的调用方式,我想知道哪种方式最适合这种情况。 我正在制作一个 js/canvas 游戏
setInterval(function () { //======= //code //======== if(--timer&etype="; } },1000); 这里定时器结束后,而不是重定
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 5 年前。 Improv
我的前老板有一个 weird bug where when he used setInterval with a long delay interval : setInterval(func, 300
这个问题已经有答案了: How does the "this" keyword work, and when should it be used? (22 个回答) How to access the
我的印象是 setInterval("/*some code*/", time) 相当于 setInterval(function() { /*some code*/ }, time) 显然不是
我对 JavaScript 和 NodeJS 非常陌生,我只是想了解 NodeJS 中的发射器模式。当我尝试使用 setInterval 函数每秒发出一个刻度事件时,程序似乎工作正常:-
我有一个简单的 setTimeout 函数,它在特定时间运行并且工作正常: var now = new Date(); var milliTillExec = new Date(now.getFull
在本教程中,您将借助示例了解 JavaScript setInterval() 方法。 在 JavaScript 中,可以在指定的时间间隔内执行一段代码。这些时间间隔称为定时事件。 有
Js: function cometConnect(){ $.ajax({ cache:false, type:"post", d
LE2。关于如何解决此问题的任何其他想法? 我有这段代码,但不知道为什么不能正常工作: $(function autorun() { if ($("#contactForm").is(":visibl
这个问题在这里已经有了答案: How to make a setInterval stop after some time or after a number of actions? (6 个答案)
我是一名优秀的程序员,十分优秀!