Комментарии 98
Огромное спасибо! Я многое познал для себя, осталось начать использовать.
+1
Сергей, просто отличная статья. Очень хорошо поможет тем, что будет создавать что-то подобное.
+5
Надо же, корпоративный блог и по делу (:
Читалка забавная, на днях попользовался даже немного
Читалка забавная, на днях попользовался даже немного
+5
жесть, дорогой проект вышел
+2
Ту часть где вы кинул Тему вы забыли? :D
-22
А почему вы решили, что мы его кинули? Потому что он об этом в блоге у себя написал?
+14
Как оперативно :D Ну начнем с того, что весь дизаин так и кричит, что это его работа. И надо же — в его блоге это написано. И вообще вы мне ребята не нравитесь и айфонсру тоже. И смысл ему обманывать? Если выбирать кому верить я выберу его, хотя далеко не его фанат.
-3
Чет я найти ничего такого у него не могу. Конечно, дело в руках скорее всего, но от ссылки не откажусь.
0
давайте-ка без вот этих глупостей! тут офигенная статья про оптимизацию в неочевидных вещах, а вы с Темой
+4
привет, «–271,0»! как дела, как семья?
+6
даёшь исходники! :)
-3
исходники вроде итак можно подсмотреть, это же обычный javascript
+2
ты думаешь, они не пожаты? о_О
-2
jsbeautifier.org и подобные думаю с этм справятся.
код вполне читабельный
код вполне читабельный
+1
В Хроме 5 с фоном не лады. Серое вместо белого.
+1
Да, некоторые ребята жаловались на это, но я не могу поймать баг. Какая у вас ОС?
+1
да и не только там, она по сути тока под мобильный сафари работает нормально
-2
конкретнее, у меня не работает в хроме, опере мобайл 9 и 10
-1
Мобильная версия онлайн-читалки пока не делалась, так как требуется совершенно другой интерфейс и подход к разбору данных. Но она обязательно появится.
0
зачем другой интерфейс если есть большой тач скрин?
0
Вы про айпад? Там тоже нужно дорабатывать, чтобы быстрее всё работало.
0
я про винмобайлы с тачскрином, где собственно опера мобайл 9 и 10
0
А, ну там тем более нужно оптимизировать. Как минимум, нужно одну страницу вместо двух выводить, оптимизировать по производительности и как-то иначе показывать настройки.
0
Хорошо, аккуратно. Номеров страниц не хватает.
0
Страницы без проблем можно пронумеровать в пределах одной главы, но если делать сквозную нумерацию всей книги, то возникает ряд проблем: нужно сначала загрузить всю книгу и просчитать все страницы + делать это каждый раз, когда пользователь меняет размер окна или настройки. А это довольно сильный провал в производительности. У меня в TODO стоит этот пункт, попробую что-нибудь придумать.
0
Не нужно пересчитывать. Экран должен быть фиксированного размера, особенно если речь про мобильные устройства.
На первой странице достаточно написать 1 и 2, при желании можно в фоне досчитать до конца, пока я читаю первые две, а без желания оставить так как есть, и просто менять при листании. Это точно производительность не затронет.
На первой странице достаточно написать 1 и 2, при желании можно в фоне досчитать до конца, пока я читаю первые две, а без желания оставить так как есть, и просто менять при листании. Это точно производительность не затронет.
0
Всё не так просто. На мобильных устройствах вроде айфона действительно экран фиксированного размера, но расчёт всей книги может занять несколько минут. Тем более, пользователь в любой момент может поменять настройки чтения (например, находясь где-нибудь ближе к концу книги), а это означает новый пересчёт всей книги + сброс кэша расчётов остальных книг пользователя.
0
Пусть даже несколько минут. Мы ведь никуда не торопимся. Несколько минут я буду читать несколько страниц, и пусть оно пока асинхронно считается, вы же на яваскрипте пишете. Во всяком случае, так поступает хардварная читалка PocketBook, которая также вынуждена обходиться весьма скромным ЦПУ. А если пользователь ближе к концу что-то такое решит — значит сам виноват, останется без пажинации. Насколько част такой сценарий? ИМО, важнее создать позитивное впечатление у 98,571% пользователей, которые ведут себя предсказуемо, а не предусмотреть перфектность для всех случаев вообще, за счёт ущемления большинства.
+1
Пусть даже несколько минут. Мы ведь никуда не торопимся.
Ну вы почитайте отзывы к предыдущим версиям приложения booq :)
Тем более, на айфоне есть другие (и бесплатные) читалки, на фоне которых наша смотрелась бы очень блекло. Нумерация страниц не может быть конкурентным преимуществом, если из-за этого читалка работает в несколько раз медленнее остальных.
0
а почему бы не отдать расчеты серверу?
0
и вообще, почему бы не отдавать на клиент небольшой кусок текста, где с ним шустренько и работать?
0
Как вы себе это представляете?
Подсказка: размер страницы зависит от гарнитуры и размера шрифта (в том числе системного, установленного в браузере пользователя), интерлиньяжа и размера окна браузера. И всё это пользователь может поменять в любую секунду.
Подсказка: размер страницы зависит от гарнитуры и размера шрифта (в том числе системного, установленного в браузере пользователя), интерлиньяжа и размера окна браузера. И всё это пользователь может поменять в любую секунду.
0
а скрипт может в любую секунду передать на сервер все эти метрики, разве нет?
0
Может. Получается, что на сервере должны быть запущены тысячи экземпляров разных браузеров с разных платформ (на разных платформах по-разному текст отрисовывается)?
Какая тогда будет выгода пользователю, если на клиенте это всё будет выполняться в несколько раз быстрее? Сейчас расчёт главы среднего размера на не самом быстром клиенте делается не более чем за 100 мс
Какая тогда будет выгода пользователю, если на клиенте это всё будет выполняться в несколько раз быстрее? Сейчас расчёт главы среднего размера на не самом быстром клиенте делается не более чем за 100 мс
0
Не знаю, насколько ресурсоемко для сервера будет все обсчитывать (тут надо эксперементировать). Подозреваю, что при должном кешировании, можно обеспечить быструю отдачу обсчитанного контента.
Суть в том, что 100 мс стоили 7 месяцев вашей работы. Мне интересно, насколько была бы жизнеспособной и трудоемкой конфигурация (и была бы?) с серверными расчетами.
Разумеется, ваш вариант уже работает и отдает приличный результат. Помимо всего прочего, производительность клиентского железа тоже растет постоянно.
Суть в том, что 100 мс стоили 7 месяцев вашей работы. Мне интересно, насколько была бы жизнеспособной и трудоемкой конфигурация (и была бы?) с серверными расчетами.
Разумеется, ваш вариант уже работает и отдает приличный результат. Помимо всего прочего, производительность клиентского железа тоже растет постоянно.
0
Opera на айфоне же как-то так и работает — рендерит страницу на сервере и отдает картинку. Вполне себе решение для мобильных платформ, хотя у вашего, конечно, свои преимущества есть.
0
Opera на айфоне же как-то так и работает — рендерит страницу на сервере и отдает картинку.
И все увидели, что в итоге получается :)
У рендеринга на сервере есть две большие проблемы. Первая — это необходимость каждый раз загружать новую книгу, когда пользователь что-то поменял в настройках. Вторая — вы заставляете пользователя быть постоянно подключенным к интернету, даже если он решил почитать книгу в метро, в самолёте или отдыхая в другой стране.
0
Customer Reviews радуют, случайно запостил
0
Внесу ясность насчёт отзывов. Если смотреть iTunes через сайт, то там показываются отзывы к версии 0.6, которая действительно была ужасна, но которую нам пришлось запостить из-за ряда проблем с предыдущей версией приложения.
Последняя версия — 0.7, в ней присутствует описанный здесь оптимизированный движок. К ней отзывы по-лучше :)
Последняя версия — 0.7, в ней присутствует описанный здесь оптимизированный движок. К ней отзывы по-лучше :)
0
0
пилю один сайт, в котором контент разбивается на блоки подобным образом…
у меня оно, конечно, пока все довольно медленно, но благодаря этим статьям, возможно, оптимизирую его :)
спасибо)
у меня оно, конечно, пока все довольно медленно, но благодаря этим статьям, возможно, оптимизирую его :)
спасибо)
0
текст в книжке иногда обрезается если на странице несколько заголовков, скрин
0
НЛО прилетело и опубликовало эту надпись здесь
Если не ошибаюсь, то для анимации используется jTweener, для чего тогда грузить целый jQuery, если он используется только для селекторов и обертки над ajax, или он не только для этого? Вполне можно обойтись каким-нибудь YASS, а для ajax обертку написать. А вобще есть еще bookmate.ru
+4
jQuery используется для CSS-селекторов, работы с событиями (в том числе нормальная делегация событий), аякс, некоторые простые анимации. Я решил не изобретать новый велосипед и использовать jQuery для онлайн-читалки, так как хороший и проверенный инструмент. Так как это декстоп, то описанных проблем с производительностью нет.
0
НЛО прилетело и опубликовало эту надпись здесь
Блин, ну почему, если написано «не влезай, убъет», так хочется проверить, а точно убъет? Намертво подвешивает, гарантирую :)
+6
10.5 бета или всё же 10.6 альфа? Сейчас посмотрю
0
НЛО прилетело и опубликовало эту надпись здесь
Постаил себе эту версию. Когда у вас возникают зависания? Сразу после загрузки страницы?
0
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Ок, спасибо, проверю, что там такое
0
> Блог компании Аймобилко
> Как создавалась Айчиталка.
Тогда уж «Как создавалось Айчиталко»
> Как создавалась Айчиталка.
Тогда уж «Как создавалось Айчиталко»
0
а есть такой сервис для которого сам грузишь книги чтобы их потом читать ??
=))
=))
+2
на десктопе работает отлично (chrome 5.0.375.55, linux), но на телефоне с андроидом тормозит и на экране мобильника всё как-то мелко.
0
Супер, интересно было прочитать все от начала до конца.
Прям триллер — «Битва за время».
Прям триллер — «Битва за время».
0
Господи зачем этот архаизм с переплетом и обрамлением из книги, вы бы еще эффект листания туда зафигачили.
+4
Уважаемые владельцы блога! Пользуясь случаем не могу не поинтересоваться. Правду ли Тема писал, когда запостил в свой жж, что вы его с оплатой кинули?
+4
НЛО прилетело и опубликовало эту надпись здесь
Сергей, вы — научный исследователь-теоретик в области html/css/js. У вас есть возможность решать задачи, на которые у остальных разработчиков-практиков не хватает времени (средств, мозгов). Cпасибо вам, что вы есть и делитесь с нами вашими разработками, и спасибо компании Аймобилко, что дает вам возможность заниматься этими научными исследованиями под своим крылом.
+10
"Следующий шаг: правильно «размазать» расчёт страниц по времени"?
0
Ребят, я не знаю как у вас че создавалось, но… купил книгу «Эффективное общение» Кейт Кинан. А она не открывается.
Вот так вот.
Айчиталка вообще вылетает при открытии книги…
А вот booq пишет ошибку: content1.xhtml TypeError: Result of expression «c» [undefined] is not an object.
Вот так вот.
Айчиталка вообще вылетает при открытии книги…
А вот booq пишет ошибку: content1.xhtml TypeError: Result of expression «c» [undefined] is not an object.
0
Хабраиндекс стал красив.
0
Да, забыл спросить, а как вы замеряете время выполнения отдельно взятых скритов и функций?
+2
Супер статья! Спасибо огромное!
Жду продолжения с нетерпением!
Жду продолжения с нетерпением!
0
НЛО прилетело и опубликовало эту надпись здесь
От покупки меня удерживает только наличие сенсорной плёнки (знаю, что
из-за неё экран будет очень заметно бликовать). Нет ли планов сделать
устройство без неё, а ещё лучше — с инфракрасной сенсорной рамкой?
В плане прошивки: хотелось бы иметь доступ к словарю.
из-за неё экран будет очень заметно бликовать). Нет ли планов сделать
устройство без неё, а ещё лучше — с инфракрасной сенсорной рамкой?
В плане прошивки: хотелось бы иметь доступ к словарю.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Как создавалась Айчиталка. Часть 1: движок