В будущем когда source.assign(target) получит законную силу, перепишешь свой скрипт на одну строку
messages.assign(json); https://developer.mozilla.org/ru/doc.../Object/assign |
Вложений: 1
рони, не надо картинок постить, у меня с двача лягушек на мегабайт.
|
Цитата:
|
function getMessages(){
if(messages.length===0){
$.ajax({
type: 'post',
data: 'getMessages',
cache: false,
dataType: 'json',
success: function(answer){
pushMessages(answer);
},
});
}else{
//Если не первая загрузка добавляем в ajax новую переменную.
}
}
function pushMessages(answer){
for(var i=0;i<answer.length;i++){
messages[answer[i].id] = new Object();
messages[answer[i].id].text = answer[i].text;
messages[answer[i].id].time = answer[i].time;
messages[answer[i].id].sender = answer[i].sender;
}
updateMessages();
}
Я думаю пойдет для начала) |
Для начала посмотри, что получается, если переписать твою пушнину нормальным языком
function pushMessages(data){
var row;
for(var i=0;i<data.length;i++){
row=data[i];
messages[row.id] = {
id:row.id,
text:row.text,
time:row.time,
text:sender.sender,
}
}
}
То есть это не все, просто я хочу чтобы ты сам допер, как все просто. |
То есть, если в answer нет ничего лишнего или оно не помешает, то пушнина вырождается в
function pushMessages(data){
for(var i=0;i<data.length;i++)
messages[data[i].id] = data[i];
}
Сравни код выше с тем, который я постил от балды и найди отличия. ))) И все что тебе не хватает - это id сразу в выдаче с сервера, о чем я сразу же на капу и нажал. |
Цитата:
|
Цитата:
|
Допустим ты отрендерил ленту по полученным данным и пришли новые. Так ты просто заменяй messages на answer, то есть в калбеке аякса messages = answer и сразу на рендер.
|
Цитата:
Цитата:
|
| Часовой пояс GMT +3, время: 03:38. |