Създавам ePub четец на IOS. По принцип използвам uiwebview за зареждане на xhtml файловете. Всеки път, когато страницата се обърне, трябва да заредя файла с uiwebview, след което да извикам javascript, за да превъртя до дясното отместване. Ето един проблем, някои xhtml файлове са големи (като > 2MB), така че зареждането им струва твърде много време. По този начин анимацията на обръщане на страницата не е толкова гладка. Така че си мисля, че мога да заредя xhtml веднъж с uiwebviewA и при всяко обръщане на страница създавам друг uiwebviewB и вземам необходимото html съдържание (като втора страница) от uiwebviewA. По този начин бих могъл да огранича html в малък размер и анимацията на обръщане на страницата трябва да е гладка. Въпросът ми е, че има ли библиотека с отворен код на javascript, която може да свърши работата? Всякакви коментари се оценяват!!
Javascript разделено html съдържание
Отговори (2)
Няма смислен, добре дефиниран начин за разделяне на HTML документ по начина, който изглежда описвате. Вие обърквате две много различни неща: (1) разделяне на изобразяването на части с размер на страница и (2) разделяне на HTML източника. Казано по друг начин, няма алгоритъм, който мога да си представя, който да раздели HTML файл на части, така че последователната композиция на изобразените части да е идентична с изобразяването на оригиналния HTML файл. С други думи, за да разберете как да разделите HTML, ако приемем, че дори е възможно, ще трябва да свършите много или цялата работа, свързана с изобразяването на страницата, което би провалило цялата цел.
Трябва да се откажете от идеята за разделяне на HTML. Всички четци на електронни книги пагинират, като по същество изобразяват целия HTML документ веднъж, след това „прозорци“ и „изрязване“ и „отместване“ или в някои случаи използват CSS региони.
Има няколко алтернативи, за които мога да се сетя, ако разбирам какво се опитвате да направите.
Намалете размера на входните HTML файлове, като ги разделите предварително по-рано в работния процес. Например, в един проект, който познавам, изходните (X)HTML файлове имат части от допълнително маркиране, което казва на предпроцесора къде да ги раздели на отделни файлове, ако желае, което в този случай е заобиколно решение за четци на електронни книги, които не не спазва правилно свойствата на CSS
page-break-*
.Предварително изчислете изобразяването на следващата страница като графика и я използвайте за обръщане на страницата.
Както вече беше обсъдено, преосмислете своята архитектура за презареждане на целия HTML документ за всяка страница във вашата книга. Ако това са просто ефекти на обръщане на страници, които ви карат да искате да направите това, тогава се откажете от тях.
Помислете, че много четци на електронни книги предоставят режим на превъртане, който не изисква пагинация, а някои (напр. Himawari Reader) предоставят режим само на превъртане, което всъщност е нещо, което някои читатели предпочитат. Можете да изложите своята версия за превъртане и след това да направите пагинация във версия 2.
Наистина трябва да проверите това:
И тази демонстрация, която прави точно това, което поискахте:
http://cubiq.org/dropbox/SwipeView/demo/ereader/
Взема текст (книга) и пагинира текста, за да пасне на размера на екрана.
Тествах демото в Android и iOS и работи страхотно!!