У меня есть php-скрипт, который получает последнее твист конкретных пользователей в формате JSON. JSON анализируется на функцию AJAX, которая отображает последний твит в ID на странице. Таймер устанавливается на каждые x секунд для выполнения вышеизложенного, получения последнего твита без необходимости обновления страницы. Это прекрасно работает.Как проверить, было ли изменено значение объекта JSON при захвате нового запроса
Теперь я пытаюсь создать функцию уведомления, отображающую уведомление при появлении нового твита для отображения. Каждый твит имеет уникальный идентификатор, называемый «id_string» в извлеченном JSON. То, что я хочу сделать, - это как-то сохранить генерируемое значение id_string, а затем каждый раз, когда запрос делается для получения нового твита, проверьте новый «id_string» на сохраненный, а если он отличается, то отобразите уведомление.
Любые идеи о том, как это сделать, были бы замечательными ?! Я просмотрел локальное хранилище, но я не очень хорошо разбираюсь в этом, и насколько мне известно, вы не можете проверять строки против других строк в локальном хранилище.
Вот необходимый код, чтобы помочь интерпретировать мой вопрос:
PHP, чтобы сделать запрос на щебет и генерировать вывод в формате JSON (tweets.php):
require_once('config/FrameFunctions.php');
$output = array();
foreach ($tweeters as $i => $tweeter){
$theTweeter = new Tweeter($tweeter, $tmhOAuth);
$allinfo = $theTweeter->getTweets();
$output[$i] = $allinfo;
}
header("Content-type: application/json");
echo json_encode($output);
В JavaScript, чтобы сделать запрашивать каждые х секунд и генерировать выходной сигнал клиента:
$(document).ready(function() {
$('.fancybox').fancybox();
/*
* call ajax function and update latest
*/
var refreshTweets = function() {
console.log("updating..");
$.ajax({url:"tweets.php",success:function(result){
tweets = eval(result);
for(i=0;i<tweets.length;i++){
$("#latesttweet"+(i+1)).html(
tweets[i][0].user.name + ": " + tweets[i][0].text
);
}
}});
}
refreshTweets();
//set the time in milliseconds here for each refresh
setInterval(refreshTweets , 30000); //Interval
});
Почему для этого требуется локальное хранилище? Вы можете сохранить последний tweet_id в переменной javascript и каждый раз проверять его на новый. Вы также можете использовать массив javascript для ведения журнала всех идентификаторов twet и сравнения нового с ним. –
"* Насколько я знаю, вы не можете проверять строки против других строк в локальном хранилище *" - Почему бы и нет? Это будет хорошо. Вы уже пробовали? – Bergi
@JaspalSingh: Чтобы сценарий по-прежнему работал, когда страница обновляется вручную, например - это была бы приятная функция – Bergi