Показать сообщение отдельно
  #21 (permalink)  
Старый 05.11.2012, 01:18
Интересующийся
Отправить личное сообщение для StanislavZ Посмотреть профиль Найти все сообщения от StanislavZ
 
Регистрация: 04.11.2012
Сообщений: 10

function barr(num, status, funcstroke, prbar){
funcstroke = "prbar = $('#fs"+num+"').find('.bar');";
eval(funcstroke);
if(status==1){
prbar.width(15);
};
if(status==2){
prbar.width(25);
};
if(status==3){
prbar.width(45);
};
if(status==4){
prbar.width(65);
};
};

$('[type = submit]').click(function(eve){
eve.preventDefault();
var inputFile = document.getElementById('input').files;
var length = inputFile.length;
var i = 0;
var funcstr;
while(length > i&&i<8){
funcstr = "var form"+i+" = new FormData(); var xhr"+i+" = new XMLHttpRequest(); xhr"+i+".onreadystatechange = function(){ barr('"+i+"',xhr"+i+".readyState); }; form"+i+".append('photo', inputFile["+i+"]); xhr"+i+".open('post', '/s.php', true); xhr"+i+".send(form"+i+");";
eval(funcstr);
i++;
};
});

Вот так выглядит код ответственный за отправку файлов. Подозреваю что криво, но работает. Новый объект XMLHttpRequest приходится создавать каждый раз так как когда отправка всего разом, не получалось сделать отдельные прогресбары для файлов, и на сервер приходило почему-то два запроса, первый пустой. Так все нормально, но подозреваю что страшно замусоривает память.
Наверное попробую сделать так - буду хранить где-то список номеров "удаленных" пользователем файлов и при обходе files их просто не отправлять.
К сожалению эти все плюшки доступны только в chrome, firefox и последней опере. Для других придется доделывать альтернативу.

Последний раз редактировалось StanislavZ, 05.11.2012 в 01:37.
Ответить с цитированием