Alexey
Anonymous
Avin
эстетика это отмазка для нерешительных консерваторов)
Anonymous
xd
Avin
в golang-е ваще 8 пробелов за отступ
Roman
вообще хз почему очень многие языки выбрали пробелы: табы можно настроить кто как хочет ведь
возможно все пошло от терминалов, которые показывали табы конских размеров
Avin
вот это я понимаю читабельность)
Roman
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
Лосось
там где чанками читается все почти такое же, но неужели аякс будет быстрее вебсокетов?
Makc
kiryl
Avin
тогда лучше либу заяюзать
kiryl
kiryl
вот не хочется блин лишние либы ради таких вещей тянуть.....
Avin
ну это слишком крутая-нестандартная фича)
kiryl
ну такое.....
Avin
можно по быстренькому накатать свой селект - при клике на див шлепать рядом другой див с позишн абсолют и в нем выводить список элементов с картинками) если постараться с css-ом может даже получица неплохо)
Anonymous
Беглые ответы по гуглу приводят к jQuery, Bootstrap и т.д. ... но хочется чистыми средствами
=> сделать пример с фреймом => переписать на нативный
kiryl
вообщем лисапедик или select2.js and others.... спасибо всем, буду думать :)
Лосось
оно итак в зип архиве, куда еще то)
Anonymous
zip так себе. Лучше паковать brotli хотя бы
Лосось
да и музыка с видео крайне плохо сжимаются
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
Да не думаю что разница 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
Alex
Ребят всем привет! Пытаюсь подружить github и wordpress, почти вышло, но есть проблемка. Может кто помочь?
Roman
- github
- wordpress
- чат pro.js
🤔
Eugene
Владислав | Python Developer
Ребята как понять ООП?))
Anonymous
Простите
Anonymous
Секта Илона маска онлайн и без регистрации
Anonymous
Это здесь?
Владислав | Python Developer
Ну серьезно
Владислав | Python Developer
Хлопцы говорят это просто а для меня это как то странно
Владислав | Python Developer
Я вот пытаюсь понять ООП через джс и пайтон
Владислав | Python Developer
Но свои заморочки
Eugene