user5209761 user5209761 - 1 year ago 95
jQuery Question

browsers fetches JSON file from cache

I am loading live map using json file but when i login the page some time it loads the json file from server n show the live map location. But sometime it not load the json file it takes the data from catche file n because of catche file i unable to show the live location. Please help me what to do

Thanks in advance

This is the code

<script>
$(document).ready(function() {

window.setInterval(function(){

$.getJSON('json/<?php echo $vehicle_imei_no2;?>.json').done(function(json){

var lat_lng = new Array();
var path = new google.maps.MVCArray();
var poly = new google.maps.Polyline({ map: map, strokeColor: '#0000ff' });
service = new google.maps.DirectionsService();
directionsDisplay = new google.maps.DirectionsRenderer();

$.each(json, function(key, data) {
latLng = new google.maps.LatLng(data.lat, data.lng);
if(data.date == '<?php echo $currentDate;?>'){
if(data.time >= '<?php echo $sessionTime; ?>'){
lat_lng.push(latLng);
}
}

addMarker(latLng, map); //add new marker
}); //each


for (var i = 1; i < lat_lng.length; i++) {

var src = lat_lng[i];
var des = lat_lng[i + 1];
path.push(src);
poly.setPath(path);
service.route({
origin: src,
destination: des,
travelMode: google.maps.DirectionsTravelMode.DRIVING
}, function (result, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(result);
}
});

}



}); //getjson

}, 1000);//interval
});

function addMarker(location,map) {
marker.setPosition(location);
marker.setIcon('assets/img/moving_bike.png');
}

</script>

Answer Source

Please provide more information to your question, such as where the JSON is being requested from, the code used to request the JSON and similar..

Anyway, a neat trick with fetching resources is to append a random query to the request with javascript or even from a server side rendering process..

http://example.com/data/map.json?123

is not the same as:

http://example.com/data/map.json?098

and should make a new request since that data has never been cached.

An example using jQuery (stated in comments):

$.getJSON('/data/map.json?' + (new Date().getTime()), ...)

using the Date will also ensure you never request the same random number.

I'd suggest you try to fix the issue on the server side of things..

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download