Открытый христианский форум JesusChrist.ru

Библия | Книги | Словари | Софт | Аудио, BQT, Евангелизм, JCQ, Молитва

Добро пожаловать на Открытый христианский форум JesusChrist.ru. Для того чтобы писать в форуме, Вам необходимо зарегистрироваться и войти на форум через ссылку для входа.

Общие разделы
   >> "Цитата из Библии"
Просмотров: 11099 Просмотреть ВСЕ ветвиСледующая ветвь*Отображение Ветвями

В теме участвуют: slavikf (12) atapin (4) Тимофей (4) ValeryZ (1) xBoo (1)

Страниц в этой нити: 1 | 2 | 3 | (показать все)
slavikf
baptist
28/11/10 09:37

# 801121

Re: Bible Quote в платформо независимом варианте (JavaScript) нов [re: Тимофей, #801115] Help admins  

Написал сегодня рабочий эских JavaScript приложения.
Только самый базовый функионал - навигация по модулям и книгам.
Нет пока навигации по главам, поиска, ничего пока нету - только концепция.
Вот здесь:
http://slavikf.com/DIGIT/BQLight/test3/
Выяснил одну любопытную деталь:
На локальном диске русские .htm файлы работают, а когда залил к себе на сервер, то ссылки на файлы с русскими именами глючат... :-) Но это наверное настройки сервера...
Да, и всё переконвертирована в UTF-8

atapin
ЕХБ
28/11/10 18:12

# 801171

Re: Bible Quote в платформо независимом варианте (JavaScript) нов [re: ВСЕМ, #800936] Help admins  

Ложась спать думал об этом.
Но пока пришел к мнению, что это получается не более как обычные модули "цитаты" если к ним обращаться напрямую.
То есть JS берет файл книги и выдает одну главу.
Но что бы ему отобрать одну главу, ему придется загрузить в DOM целиком книгу. Он не сможет прочесть файл только до какой то точки, как в PHP.
А загрузит в оперативку клиента весь файл, и далее отберет указанную главу и отобразит её на экране.

Но тогда не понял смысла...

То есть, проще говоря, просто более удобный интерфейс к чтению HTML файлов?

Поиск: работать то может и будет... но не нужно забывать, что опять это будет происходить на стороне клиента в оперативной памяти.
И если аппарат не большой, и тем более мобильный.... зависнет все на пару минут в лучшем случае.

То есть, написать такую штуку не проблема. Но насколько она и правда нужна, и насколько она будет подвешивать машину клиента? Это наверное самое больное место.

По поводу кодировки.
Конечно только UTF8
Кириллицу JS не видит в других кодировках. Точнее видит их в виде "кракозябров".
В нашем проекте мы полностью все модули перекодируем в момент загрузки модуля на сервер. Причем загружать может любой пользователь или гость.

Так же не забывайте, что модули создают разные люди. и часто файл bibleqt.ini пишут так:
bibleqt.INI или так
BIBLEQT.ini
или так
BIBLEQT.INI

Одним словом как кому нравится.
Я понимаю, что для Windows это не существенно. но на сервере, чаще всего Linux а вот ему уже не все равно большие или маленькие буквы.
А регистронезависимого XMLHttpRequest пока не придумали.

Ну и это ещё "семечки".

То есть тогда, или придется создать более жесткие требования к модулям такой "программы", или вообще прописать все жестко, не давая возможность без изменения кода добавлять новые модули.

Ну и не факт, что на всех платформах это будет работать. JS язык который разные браузеры читают по разному.
И то, что работает в одном не работает в другом.

Учитывая все выше сказанное, пока не вижу практической необходимости создания такого JS приложения.

slavikf
baptist
28/11/10 20:29

# 801201

Re: Bible Quote в платформо независимом варианте (JavaScript) нов [re: atapin, #801171] Help admins  

Но пока пришел к мнению, что это получается не более как обычные модули "цитаты" если к ним обращаться напрямую.
То есть JS берет файл книги и выдает одну главу.
Но что бы ему отобрать одну главу, ему придется загрузить в DOM целиком книгу. Он не сможет прочесть файл только до какой то точки, как в PHP.
А загрузит в оперативку клиента весь файл, и далее отберет указанную главу и отобразит её на экране.

Но тогда не понял смысла...

То есть, проще говоря, просто более удобный интерфейс к чтению HTML файлов?

Так и есть. JS Будет грузить и показывать книгу полностью. Главы будет только для навигации.
Смысл - такой же как и в Desktop версии.

Поиск: работать то может и будет... но не нужно забывать, что опять это будет происходить на стороне клиента в оперативной памяти.
И если аппарат не большой, и тем более мобильный.... зависнет все на пару минут в лучшем случае.

Ну на современных аппаратах это не такая уж и проблема.

Так же не забывайте, что модули создают разные люди. и часто файл bibleqt.ini пишут так:
bibleqt.INI или так
BIBLEQT.ini
или так
BIBLEQT.INI

Одним словом как кому нравится.
Я понимаю, что для Windows это не существенно. но на сервере, чаще всего Linux а вот ему уже не все равно большие или маленькие буквы.
А регистронезависимого XMLHttpRequest пока не придумали.

Так и есть. Кстати для Windows это тоже верно в JavaScript окружении. Ещё одна сложность - JavaScript не может сканировать директории (то есть искать модули). Но я уже придумал, как это обойти. Для этого нужно будет создавать reference file со списком всех модулей. Не такая и большая проблема.

Ну и не факт, что на всех платформах это будет работать. JS язык который разные браузеры читают по разному.
И то, что работает в одном не работает в другом.

Здесь я не соглашусь. JavaScript - это самый портативный язык, который только существует. Даже Java не так портативна. Мелкие различие в разных браузерах есть, но это легко обходиться.

Учитывая все выше сказанное, пока не вижу практической необходимости создания такого JS приложения.

А какое же тогда решение вы предложите для Android, IPhone, BlackBerry?
И ещё один момент - вариант, который я проектирую размечен под небольшие размеры экрана. Это что отличает, от вашего веб-проекта, который довольно трудно смотреть на мобильном браузере.

atapin
ЕХБ
28/11/10 21:00

# 801211

Re: Bible Quote в платформо независимом варианте (JavaScript) нов [re: slavikf, #801201] Help admins  

ну надеюсь мы не спорим у кого чуб длиннее и завивается сильнее?

Наоборот, мне ваша идея вполне по душе.
Более того, я целый вечер потрачу сегодня на то, что бы посмотреть на деле. как это можно организовать.

Так что пожелаю успехов и готов посодействовать вам в вашей работе.

Все версии имеют место быть, и все нужны!

А по поводу "Смысл - такой же как и в Desktop версии." не буду возражать, так ну так значит так.


:) Благословений!

atapin
ЕХБ
29/11/10 00:50

# 801279

Re: Bible Quote в платформо независимом варианте (JavaScript) нов [re: slavikf, #801201] Help admins  

Посмотрел на то что вы уже сделали, настоятельно советую капать в сторону jQuery или Ext JS

slavikf
baptist
29/11/10 01:15

# 801283

Re: Bible Quote в платформо независимом варианте (JavaScript) нов [re: atapin, #801279] Help admins  

А зачем нужнв эти библиотеки? Я не сильно с ними знаком... Это больше к юзер интерфейсу относиться? Или к бизнес логике?

ValeryZ
Христианин
29/11/10 01:55
valeryz.com.ua

# 801287

Re: Bible Quote в платформо независимом варианте (JavaScript) нов [re: slavikf, #801283] Help admins  

jQuery — библиотека JavaScript, фокусирующаяся на взаимодействии JavaScript и HTML. Библиотека jQuery помогает легко получать доступ к любому элементу DOM, обращаться к атрибутам и содержимому элементов DOM, манипулировать ими. Также библиотека jQuery предоставляет удобный API по работе с Ajax.


Рекомендую: неплохой сайт-"справочник" с рабочими примерами и возможностью тестирования он-лайн.

slavikf
baptist
21/12/10 19:59

# 806860

Re: Bible Quote в платформо независимом варианте (JavaScript) нов [re: ВСЕМ, #800936] Help admins  

Небольшой Update...
с JQuery решил пока не связываться, чтоб всё шустрей работало...

Начал писать JavaScript движок к BibleQuote... Встретил несколько неожиданных проблем. Некоторые получилось решить... Некоторые нет.
Вот детали:
1) Вначале решил сделать дизайн страницы. Что нужно:
* Логичным показалось сделать страницу из 2х частей
* 1 часть - toolbar, откуда можно выбирать модуль/книгу... Чтоб он висел вверху страницы
* 2 часть - собственно сам модуль (Библия, толкование, текст...)

Казалось бы что проще - сделал DIV, поставил его Position, как fixed вверху - вот тебе и тулбар. Оказалось, что никакие мобильные браузеры не поддерживают свойство fixed :-( В результате поисков нашёл скрипт вот здесь:
http://cubiq.org/follow-along-floating-layer
который динамически перемещает нужный елемент по странице так, чтоб он всё время был видимым - то есть после того, как пользователь отскролился...
Надо потестировать - так всё вроде работает, но иногда тулбар куда-то уезжает... :-( Но это бывает редко :-)

Потом стал думать, как делать 2ю часть? Подгружать сам модуль можно 2мя способами - или AJAX'ом внуть страницы или в IFrame.
с AJAX'ом 2 проблемы:
* неправльные ссылки и пути. Дело в том, что мой скрипт располагается в корневой директории BibleQuote, т.е. там обычно bq5.exe, а у модулей внутри ссылки стоят (например на картинки) относительно той папки в которой они находятся. Соответственно, если я загружаю (через AJAX) HTML модуля в свой скрипт, то все ссылки теперь уже не работают (потому что они базируются относительно своей папки, а не относительно корневой)
* Некоторые модули BibleQuote размером почти по мегабайту, и пока AJAX их загрузит и отобразит проходит много времени... То есть всё очень тормозно. Тормоза заметны даже на моём Windows компьюетере, а на мобильнике и подавно... Так что JavaScript на браузере - это явно не native application...

Стал делать IFrame - тут со ссылками всё нормально. :-) но возникли другие проблемы. 1я - то, что размер IFrame очень трудно сделать на всё окно. Путём хитрого CSS это удалось, но корректно работает только для мобильных браузеров (Android, IPhone). На компьютере тоже работает, но отображает лишний scroll bar справа...
Но scroll bar - это мелочи... Серьёзней оказалось то, что содержимое IFrame трудно парсить на главы. Эту проблему я так и не решил. :-( Дело в том, что BibleQuote деление на главы осуществляется с помощью определённой условной строки. Так вот я загружаю HTML модуля в IFrame, ищу нужную строку, и заменяю её на якорь (anchor) : <a href="#chapterX">, а потом по запросу пользователя перехожу на нужный якорь. Но это так в теории. На самом деле вставить якоря оказалось относительно нетрудно, а вот переходить на них мобильные браузеры не захотели... Поэтому навигация по главам пока не работает :-( ...

Чуть позже залью версию, которая получилась на данный момент...

slavikf
baptist
21/12/10 20:30

# 806867

Re: Bible Quote в платформо независимом варианте (JavaScript) нов [re: ВСЕМ, #800936] Help admins  

Ещё детали... Больше наверное для общего развития.

Кодировка
Известно, что модули в BibleQuote 5 сделаны в кодировке Win 1251
Это в общем не проблема (хотя лучше бы было UTF8). Можно поставить META tag с кодировкой - и все дела...
Но мой скрипт подгружает bibleqt.ini динамически (через AJAX) и оттуда берёт названия книг. Эти файлы тоже Win 1251. Так вот оказалось, что браузеры, даже если страница в кодировке Win 1251 - всё равно по AJAX работают в UTF8, потому в тулбаре все названия книг были в виде кракозярбров... Одним решением было заставить сервером выдавать в header инормация о том, что кодировка - Win 1251. Но проблема в том, что всё должно работать локально без всякого сервера вообще.
После несколько часов поисков в нете и на форумах выяснилось, что для AJAX request существует специальная функция, которая позволяет делать override на кодировку:
overrideMimeType("text/plain; CHARSET=windows-1251");
Хотя в перспективе всё равно надо на UTF8 переходить...

slavikf
baptist
21/12/10 21:50

# 806871

Re: Bible Quote в платформо независимом варианте (JavaScript) нов [re: ВСЕМ, #800936] Help admins  

Пока можно попробовать рабочую версию здесь:
http://bq.slavikf.com/

Когда будет более готова - то выложу для скачивания...

На некоторые модули выскакивает ошибка:
The requested URL /Book_076SbornikPoeziya/СбоÑ?ник_Ñ…Ñ?истианских_песен.html was not found on this server.

Это проблема того, что имена файлов - русские (и кто это решил имена файлов по русски писать?)
На локальном компьютере этой проблемы нет - это проблема сервера.

Скрипт абсолютно не работает на Internet Explorer любой версии. AJAX я писал под WebKit, а в IE полностью своя спецификация (несовместимая) и так как IE для мобильников я ешё не видел (вот только что вышел WP7, которого я ешё не видел и не трогал) - то и версии под IE нету... Пользуйте FireFox, Chrome, Safari... На desktop ближе всего к Android и IPhone - Safari...

В Chrome встроена какая-то параноидальная защита и на локальном компьютере скрипт работать не будет... :-( Но это проблема AJAX на локальном компьютере - с сервером Chrome работает нормально.


Страниц в этой нити: 1 | 2 | 3 | (показать все)

ОТВЕТИТЬ ВСЕМ   Просмотреть ВСЕ ветвиСледующая ветвь*Отображение Ветвями
Перейти на