У меня есть страница, которая делает запрос ajax и возвращает данные в формате json.
Мне нужно было отсортировать эти данные перед добавлением их в DOM, чтобы они помещались в объект со следующим кодом
function(data){
var birthDates={};
var uids={};
$.each(data.users, function(){
if(!uids[this.uid]){
uids[this.uid] = [];
uids[this.uid].push(this);
}
if(!birthDates[this.birthDate])
birthDates[this.birthDate] = [];
birthDates[this.birthDate].push(this);
});
for(var d in birthDates){
var date=d;
$('div#holdDates').append(''+date+'</li>');
$.each(birthDates[date], function(){
$('ul#'+date).append(''+this.name+'</li>');
});
}
$('li.show').click(function(){
var getuid=$(this).attr('id');
$showArr=uids[getuid];
// now I can get the extended data about the user
все это прекрасно работает, когда страница загружается в первый раз, однако я сталкиваюсь с двумя проблемами, обе в результате выполнения второго запроса AJAX
1) если я сделаю один и тот же запрос AJAX (давая те же переменные, чтобы те же данные вернулись снова), то данные будут добавлены во вновь созданные объекты (uids и birthDates) дважды, и я не могу понять, как сохранить это как уникальный
2) иногда (и я не смог отладить, чтобы выяснить, почему), я не получаю никаких расширенных пользовательских данных от объекта uids. (то, что я делаю после щелчка
Есть идеи? Я делаю это эффективно?
Мне кажется странным, что вы не можете очистить созданный вами объект, но, очевидно, все, что я читаю, говорит о том, что вы не можете.
Добавление * * +1010
Что ж, после публикации этого сообщения я собирался создать облако динамических тегов, которое зависит от возвращаемого json.
Итак, теперь я снова столкнулся с той же проблемой. Мне нужно, чтобы облако тегов было новым после каждого запроса. Я действительно надеюсь, что есть способ избавиться от «устаревших» данных в javascript.
Спасибо,
Пит