Używam Google Feed JSAPI do odczytu/analizowania kanału. Problem polega na tym, że po zmianie kanału poprzednie wpisy stają się nieważne (linki i obrazy nie działają), więc nie mogę załadować buforowanej wersji kanału. Pomyślałem, że podczas ładowania kanału nie będzie opcji, aby nie używać wersji buforowanej, ale jej nie widzę. Moim rozwiązaniem jest dodanie zmiennej (t) na końcu adresu URL, aby było "unikalne", ale wydaje się, że jest hacky (ale działa). Ktoś wie lepszy sposób na zrobienie tego?Zapobieganie używaniu interfejsu API kanału Google do buforowania
function onLoad() {
// Create a feed instance that will grab feed feed.
var feed = new google.feeds.Feed(feedLocation+"&t="+new Date().getTime());
// Request the results in XML (so that we can parse out all the info
feed.setResultFormat(google.feeds.Feed.XML_FORMAT);
//must set this - if you don't, it defaults to 4
feed.setNumEntries(50);
// Calling load sends the request off. It requires a callback function.
feed.load(feedLoaded);
}
znaleźliście rozwiązanie? Problem polega na tym, że serwer dostarczający kanał używa buforowania na podstawie adresu URL kanału. Więc jeśli dodaję losowy ciąg do ciągu zapytania tego URL, to nie tylko obejdzie pamięć podręczną Google, ale także serwer. Chyba muszę zmodyfikować serwer, aby dodać specjalny * zewnętrzny bypass cache * parametru, który zostanie zignorowany podczas wewnętrznego buforowania. – feklee
Nie, nie ma rozwiązania innego niż to, co wspomniałem w moim pytaniu - dodawanie w czasie jako parametru "losowego". Działa, po prostu nie tak czysty, jak bym chciał. –
Teraz robię to samo, dodając coś takiego: ''bypass_cache =' + Math.floor (Date.now()/refreshIntervalInMs)' – feklee