Ich arbeite an einer Chrome-Erweiterung für Lehrer in einem Schulbezirk, die wichtige Ankündigungen in einem Popup-Fenster anzeigt. I'm using a published Google Spreadsheet to create a JSON feed von jQuery im Hintergrundskript analysiert.Überprüfen, ob JSON mit neuen Daten aktualisiert wurde
Ich möchte dem Erweiterungssymbol ein Symbol hinzufügen, wenn die Daten in der Tabelle geändert werden, aber ich habe keine Ahnung, wie überprüft werden kann, ob JSON aktualisiert wurde. Das JSON von Google hat einen Datums-Hash (data.feed.updated.$t
) und ich denke, das ist der Weg zu gehen, aber ich kann nicht sagen, welche Formatierung es verwendet.
Wie sollte ich die bedingte if
in meinem windowPopup.js
Skript schreiben, um zu überprüfen, ob die Daten aktualisiert wurden?
windowPopup.js
$(document).ready(function() {
var d = new Date();
var month = d.getMonth()+1;
var day = d.getDate();
var output = (month<10 ? '0' : '') + month + '/' + (day<10 ? '0' : '') + day + '/' + d.getFullYear();
$('#date').append('<h1>'+output+'</h1>');
var spreadsheetId = "10j8Ycax02XMkVWMK1v-aYJMHoOjQaLRFuZUOKZEY9nA";
var url = "https://spreadsheets.google.com/feeds/list/" + spreadsheetId + "/od6/public/values?alt=json";
$.getJSON(url, function(data) {
var entry = data.feed.entry;
$(entry).each(function() {
$('.data').append('<h2>'+this.gsx$title.$t+'</h2><p>'+this.gsx$text.$t+'</p>');
});
console.log(data.feed.updated.$t);
console.log(d);
// I'm not sure how to check if the data has been updated
// Currently, these will never match, so it's always badged.
if(d != data.feed.updated.$t) {
chrome.browserAction.setBadgeText({
text: "!"
});
}
});
});
Dies ist ein ziemlich geniale Bibliothek für JSON-Vergleiche: https://github.com/benjamine/jsondiffpatch – Enkode