user5209761 user5209761 - 5 months ago 26
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

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..