Vlad
Давай пятюню
*пять не нашел смайл
Avin
эстетика это отмазка для нерешительных консерваторов)
Anonymous
xd
Avin
в golang-е ваще 8 пробелов за отступ
Roman
вообще хз почему очень многие языки выбрали пробелы: табы можно настроить кто как хочет ведь возможно все пошло от терминалов, которые показывали табы конских размеров
Avin
вот это я понимаю читабельность)
Anonymous
а чего не 64?
это 64, он просто забыл написать, что 8 в квадрате
Avin
😄
Anonymous
ну все, парни, за дело
Anonymous
Лосось
Всем здрастите, делаю аплоад больших (>100мб) файлов на сервер, через днд форму на сайте. Столкнулся с проблемой крайне медленной обработки(компоновки пакетов перед отправкой). Алгоритм такой: читаю файл в вебворкере кусочками, ловлю их в основном потоке и выкидываю на сервер через вебсокет. Начитывает файл быстро, а вот пакеты компонует пиздец как долго
Avin
че там с воркером? мб затык в обмене данных с воркером?
Avin
@shinybozdo
Лосось
self.addEventListener('message', e => { const file = e.data; try { let offset = 0; let chunkSize = (file.size < 4096*1024) ? (file.size) : (1024*1024); const reader = new FileReaderSync(); while (file.size > offset) { const fileBlob = file.slice(offset, offset + chunkSize); postMessage({ success: 1, data: reader.readAsBinaryString(fileBlob), size: file.size, curSize: offset + chunkSize, name: file.name }); offset += chunkSize; if ((file.size - offset) < chunkSize) { console.log('УГРА chunkSize = ', chunkSize, 'offset = ',offset); chunkSize = file.size - offset; } } } catch(e){ postMessage({ success: 0, data: e, size: file.size, name: file.name }) } }, false) }
Avin
Там чтоб упаковать данные в этот буфер несчастный надо мощей стокаже скока разобрать эти данные - мб проще всё в одном потоке делать?
Лосось
я к тому же выводу пришел, думаю в воркере еще fetch сделать
Anonymous
В этом мире проблемы не решаются.
Avin
в воркере фетч не будет работать
Лосось
в хроме и файрфоксе будет
Лосось
https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Functions_and_classes_available_to_workers
Лосось
а в одном потоке когда делал были такие фризы
Лосось
100 мб грузишь - вкладка начинает есть 1гб
Лосось
200 - 2гб
Лосось
выше - пиздец вкладке
Avin
😄
Лосось
данные очень быстро начитываются главное, а вот все что после - очень тормозится
Лосось
500мб начитываются 30 сек в воркере
Avin
вон тут чел код выложил как он грузил большие файлы аяксом
Avin
https://stackoverflow.com/questions/46435494/uploading-large-files-with-ajax-call
kiryl
Всем привет. Есть ли способ добавить в option select'a картинку/иконку перед строкой ванильными средствами? Не очень хочется тянуть ради этого какую-либо библиотеку. Беглые ответы по гуглу приводят к jQuery, Bootstrap и т.д. ... но хочется чистыми средствами
Лосось
там где чанками читается все почти такое же, но неужели аякс будет быстрее вебсокетов?
Avin
тогда лучше либу заяюзать
kiryl
Как насчёт :before?
не получилось
kiryl
вот не хочется блин лишние либы ради таких вещей тянуть.....
Avin
ну это слишком крутая-нестандартная фича)
kiryl
ну такое.....
Avin
можно по быстренькому накатать свой селект - при клике на див шлепать рядом другой див с позишн абсолют и в нем выводить список элементов с картинками) если постараться с css-ом может даже получица неплохо)
Anonymous
Беглые ответы по гуглу приводят к jQuery, Bootstrap и т.д. ... но хочется чистыми средствами => сделать пример с фреймом => переписать на нативный
kiryl
вообщем лисапедик или select2.js and others.... спасибо всем, буду думать :)
Anonymous
500мб начитываются 30 сек в воркере
Попробуй еще сжимать перед отправкой: https://blog.daftcode.pl/how-to-make-uploading-10x-faster-f5b3f9cfcd52
Лосось
оно итак в зип архиве, куда еще то)
Anonymous
zip так себе. Лучше паковать brotli хотя бы
Лосось
да и музыка с видео крайне плохо сжимаются
Anonymous
да и музыка с видео крайне плохо сжимаются
потому что они и так сжаты. Там уже не осталось энтропии
Anonymous
Кстати, а почему ты используешь FileReaderSync вместо FileReader?
Лосось
воркер же
Лосось
так ток такое канает
Anonymous
потом readAsArrayBuffer вместо readAsBinaryString
Лосось
а в чем выйгрыш?
Anonymous
А в том, что readAsArrayBuffer не занимаеться кодированием а пересылает как есть
Лосось
точно точно, к тому же readAsBinaryString деприкейтед
Bohdan
Господа, а на сколько адекватно сделать trothlle для window.resize на requestAnimationFrame?
Bohdan
let ticking = true const update = (timestamp) => { svg.style.height = 'auto'; svg.style.height = `${document.documentElement.scrollHeight}px`; ticking = true; console.log(timestamp) } const requestTick = () => { if(ticking) requestAnimationFrame(update); ticking = false; } window.addEventListener('resize', requestTick);
Bohdan
чето что с ним, что без него, как-то одинаково работает
Anonymous
точно точно, к тому же readAsBinaryString деприкейтед
Вообще советую попробовать FileReader + readAsArrayBuffer в главном потоке. Не устроит - используй FileReaderSync + readAsArrayBuffer в Web воркере
Лосось
Вообще советую попробовать FileReader + readAsArrayBuffer в главном потоке. Не устроит - используй FileReaderSync + readAsArrayBuffer в Web воркере
попробую, если интеесно даже отпишу что да как. Транспорт на вебсокетах или обычный фетч?\
Anonymous
Да не думаю что разница fetch vs ws будет сильно большая. Разве что если чанков будет слишком много.
Anonymous
Еще момент, у тебя 4 кб чанки, но как то странно ты их кастишь: (file.size < 4096*1024) ? (file.size) : (1024*1024); может всетаки: file.size < 4096*1024 ? file.size : 4096*1024; или еще проще: Math.min(file.size, 4096*1024)
Anonymous
4 кб чанки это мало. Лучше 64 кб будут соответствовать 1й странице в памяти
CherryTea
4кб чанки, этож сколько их там...
Лосось
1024*1024 = 1мб чанк вроде..
Anonymous
1024*1024 = 1мб чанк вроде..
Да 1мб, сорри проглядел
Alex
Ребят всем привет! Пытаюсь подружить github и wordpress, почти вышло, но есть проблемка. Может кто помочь?
Roman
- github - wordpress - чат pro.js 🤔
Владислав | Python Developer
Ребята как понять ООП?))
Anonymous
Простите
Anonymous
Секта Илона маска онлайн и без регистрации
Anonymous
Это здесь?
Владислав | Python Developer
Ну серьезно
Владислав | Python Developer
Хлопцы говорят это просто а для меня это как то странно
Владислав | Python Developer
Я вот пытаюсь понять ООП через джс и пайтон
Владислав | Python Developer
Но свои заморочки