Как ускорить отдачу веб-страницы ?
- Войдите на сайт для отправки комментариев
Втр, 22/03/2016 - 10:20
Имеем классический код для ардуино веб-сервера:
EthernetClient client = server.available(); // try to get client
File webFile;
if(SD.exists(GetData)){ webFile = SD.open(GetData); }
while(webFile.available() && File_type == true) { client.write(webFile.read()); // send web page to client } webFile.close();
т.е. читаем байт с SD-карты и пишем его в изернет-шилд.
Скорость 4кБайт/с.
Мало, У меня только страница(x.html) весит 70 кБ.
Вопрос: как ускорить отдачу страницы?
Я полагаю, если читать по 10 байт а не по одному - скорость повысится?
Так например...
Получится?
или лучше использовать stream.readBytesUntil(character, buffer, length) ?
как при использовании readBytes определить конец файла?
https://geektimes.ru/post/260682/
Спасибо, это то что надо.
Так например...
Получится?
или лучше использовать stream.readBytesUntil(character, buffer, length) ?
как при использовании readBytes определить конец файла?
Не будет так работать, ибо вот тут client.write( webFile.readBytes(buffer, length) ) та самая client.write получит как результат функции чтения количество прочитанных байт, но не как ссылку на буфер. И вообще подход пагубный - передавать результаты фынкции как параметр другой функции, ибо они передаются через стек и могут этот стек с лёгкостью загнать до области динамической памяти.
А вообще так: