Кэш и ненависть в iBooks
Разрабатывая книгу в iBooks Author, я столкнулись с «необъяснимыми» проблемами с HTML5 AUDIO в написанных мной виджетах. Аудио то играло, то не играло, звук иногда пропадал после исправлений, которые не затрагивали ни JS, ни HTML, ни CSS ( например после замены дефисов на тире ). Долгим и, к сожалению, эмпирическим путем я установил корень проблемы — кириллица в имени файла книги и в имени файла виджета. Вроде бы все легко — переименовываем книгу, переименовываем виджет, профит! С файлом книги, естественно, проблем не возникло, а с виджетом все оказалось чуть-чуть сложнее.
WTF?! Cache!
Никто не может просто взять и переименовать виджет. iBooks Author имеет свой механизм кэширования. Упрощенная модель кэша работает примерно так
- Получаем хэш файла, который пользователь пытается добавить в книгу.
- Сверяем хэш файла с хэшами уже существующих файлов этого типа.
- Решаем, использовать ли новый файл, либо сослаться на файл, который уже существует в книге основываясь на результате предыдущего пункта.
Можно очень долго пытаться добавить переименованый латиницей файл в книгу, но пока в код виджета не добавишь хотя бы один пробел — iBooks не станет добавлять виджет, и вместо этого будет ссылаться на уже существующий файл, который не будет работать из-за кириллицы в названии.
Похожие статьи:
-
Ссылка на глоссарий в iBooks Author
Что делать если не получается добавить слово в глоссарий iBooks Author
-
Нумерация страниц в iBooks Author
Как исправить нумерацию страниц с римских чисел на арабские в Apple iBooks Author
-
Сломаные заполнители в iBooks
-
Странные ссылки в iBooks
-
Как объеденить две медиатеки в iTunes
Инструкция о том, как объединенить две медиатеки, не потеряв статистику прослушиваний
-
Музыка для работы #5
Немного мурашек по спине…
-
Белый шум
Баттхёрта нить начинается здесь
-
CommonJS для браузера
Видео моего доклада на MoscowJS