|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
сабж и использует ли его кто? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2009, 14:28 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
kasik, STFW oracle application express extjs : - Demo website: ExtJS with Oracle Apex - APEX Development: Increasing Development Productivity through ExtJS Integration! Я не использую. :) Но штука интересная... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2009, 14:54 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
Тяжеловатый он в плане размера. А так конечно ничего... Но я бы выбрал JQuery . ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2009, 15:35 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
для инета может быть тяжеловат... хотя ~700кб тоже не ахти какой вес(для нынешних скоростных провайдеров неговоря уж об локали), и загружается он один раз а потом работать толькро с одной головной страницей. но для клиентской машины он конечно да немного напряжен в зависимости от конфиги компа. в jq я тоже использую и активно но вот наткнулся на данный фраемворк и он меня заинтересовал. сейчас хочу разрабатывать новое приложение и попробовать его хочу в деле! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2009, 15:40 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
kasik, jQuery просто обещаются интегрировать в ApEx 4. Потому его что так, что так браузер будет загружать вместе со страницей. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2009, 16:23 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
дак я не про jq, он то вообще легонький... 100кб вот ссылки может кому нить пригодяться, можете писать свои если найдете... http://application-express-blog.e-dba.com/ http://oracleinsights.blogspot.com/ http://abrdev.com/ http://apex.oracle.com/pls/otn/f?p=65555 http://apex.oracle.com/pls/otn/f?p=200801 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2009, 15:50 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
если в апексе весь интерфейс делать на ExtJs, то зачем тогда вообще использовать апекс??? если же для расширения апекса, то очень даже хорошо, при этом подключать всю библиотеку к странице и ненужно, достаточно только используемые части ее. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2009, 08:12 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
Не надо путать божий дар с яишницей... Апекс это основа, в все остальное дополнения... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2009, 10:29 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
kasikНе надо путать божий дар с яишницей... Апекс это основа, в все остальное дополнения...в приведенных вами двух последних примерах, была попытка реализации всего интерфейса на extjs. Вот это действительно яишница, точнее сказать не рыба не мясо... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2009, 10:43 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
kasik... Апекс это основа, в все остальное дополнения... Основа у нас это - "PL/SQL Web Toolkit"! А апекс "фреймворк + билдер в одном стакане" стандартное приложение на апексе "апекс"<=>"PL/SQL Web Toolkit" если же весь пользовательский интерфейс делать на extjs мы получим связку "extjs" <=> "апекс"<=>"PL/SQL Web Toolkit", где апекс лишнее звено. Основа работы с сервером у extjs — AJAX, а апекс не лучший выбор для этих целей, без его гораздо проще, не нужно будет Ext.data.DataProxy дорабатывать. Поэтому если есть желание весь интерфейс делать на extjs то связка "extjs" <=> "PL/SQL Web Toolkit" самое то! При этом как дополнение к апексу, основной интерфейс на апексе и только отдельные элементы на extjs, это очень хороший вариант. Ales ProtivТяжеловатый он в плане размера. А так конечно ничего... Но я бы выбрал Jquery . extjs предлагает нам набор виджетов (widgets). С помощью чего он их строит? Используя для этого четыре адаптера: ext jquery prototype yui поэтому рассуждения о том, что лучше jquery или extjs, это то же самое что выяснения что лучше шариковая ручка или ее чернильный стержень... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2009, 11:33 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
Примеры я без всякого умысла выложил, просто укак пример исполшьзования данной библиотеки а не пример замещения апекса и не буду я делать все под extjs а только использование некоторых виджетов для придания живости и интреактивности интерфейса, чего в штатных возможностях апекса нет! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2009, 11:56 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
2 kasik и будешь прав! правильный выбор! вот пример создания таблици, если кому интересно Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54.
Это у нас прокси Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.
а это Application Processes Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63.
работа с json под ораклом взята отсюда http://json.org/ ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2009, 12:07 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
select replace(:USER_SEARCH_STRING,'& quot;','"') into :USER_SEARCH_STRING from dual; в '& quot;' пробела быть недолжно просто если в оригинале запостить заменяет на ковычки ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2009, 12:18 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
old.rublЭто у нас прокси Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Если уж используете ApEx в качестве основы, то не document.getElementById("pFlowId").value, а $v("pFlowId"). И вообще гляньте на apex.ajax.ondemand... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2009, 12:20 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
2 suPPLer в версии 2? :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2009, 12:23 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
old.rubl, я говорю про 3.1+, с учётом того, что "ApEx 4.0 - Coming Soon...", и там обещаются jQuery, больше красивостей с AJAX и перламутровые пуговицы. Про ApEx 2 я думаю только в плане "Download new version from Oracle site and read Upgrade Guide", поскольку обновление мне никаких неудобств не доставило. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2009, 12:29 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
чуть не забыл ... Header and Footer Код: plaintext 1. 2. 3. 4. 5.
Region Source Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2009, 12:34 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
2 suPPLer я примеры сначала на XE делал, поэтому можно иногда в коде что угодно увидеть. Что касается версии 4 неплохо если на осное jQuery сделают расширение UI если только jQuery UI предложат использовать, то будет очень скромно по сравнению с extjs поживем увидим... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2009, 12:41 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
таблица с использованием XML xml-grid.js Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
Application Processes Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
Header and Footer Код: plaintext 1. 2. 3. 4. 5.
Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2009, 12:48 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
как дистрибутив extjs поместить в Oracle XE (Oracle XMLDB) описано здесь http://daust.blogspot.com/2006/03/where-are-images-of-application.html база данных в примерах использовалась из демок апекса "Sample Application" ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2009, 13:03 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
old.rubl2 suPPLer я примеры сначала на XE делал, поэтому можно иногда в коде что угодно увидеть. XE тоже прекрасно апгрейдится. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2009, 13:40 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
old.rubl, Пытались ли переделать прокси под EXTJS4? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2011, 19:06 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
Если вдруг кому интересно. Сделали связку ExtJs <->nginx<->apex (PL/SQL Gateway)<->БД Все файлы типа js,html,css, картинки хостятся на nginx. Запросы к апексу проксируются на Apex. extjs-all.js nginx отдает в gzip. Интерфейс грузится пару секунд при первой загрузке. При настроенных на nginx хедерах на кэширование, повторное отркрытие моментально происходит. Почему пришли именно к такому решению - При незначительном количестве работающих с Веб приложением (приложения то достаточно простые - по сути просто отражение таблиц и пара форм для добавления записей) на Apex стали возникать жуткие тормоза при открытии страниц. Сам Апекс живет на том же сервере что и БД с исходными данными, с которой еще работает и основная автоматизированная система с одновременным количеством пользователей порядка 350-400 человек. Ну в обчем. Переписал эти web приложения на ExtJs c Ajax по demand процессам и всё летает, все довольны :) Судя по тому, что demand процессы отдают данные практически мгновенно, видимо тормоза возникают именно в построении апексом html страницы. Можно конечно работать напрямую со своими процедурами доступными через PL/SQL Gateway без Apex, но там надо заморачиваться тогда с аутентификацией, сессиями и тд и тп. Если кому нужно чисто выцепить данные из БД в web клиент без заморочек, то apex и не нужен совсем. Использую. ExtJs 4.2.1 Делаю перезагрузку метода doRequest в классе Ext.data.proxy.Ajax, чтобы таблички нормально работали. Формат обмена JSON. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2014, 16:29 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
Можно конечно работать напрямую со своими процедурами доступными через PL/SQL Gateway без Apex, но там надо заморачиваться тогда с аутентификацией, сессиями и тд и тп. Если кому нужно чисто выцепить данные из БД в web клиент без заморочек, то apex и не нужен совсем. По подробней, как мне получить данные с БД без апекса? Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2014, 17:52 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
bankir1980Переписал эти web приложения на ExtJs c Ajax по demand процессам и всё летает, все довольны :) А чем не угодил встроенный Jquery? EPG (embedded pl/sql gateway) почему не заменили на Apex Listener? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2014, 18:11 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
Вот тут достаточно понятно написано про гейтвей, его функционал и настройки. http://docs.oracle.com/cd/B28359_01/appdev.111/b28424/adfns_web.htm#BGBBHAEC Если всё настроено, то в итоге нужно будет обращаться к урлу формата protocol://hostname[:port]/virt-path/[[!][schema.][package.]proc_name[?query_str]] где [schema.][package.]proc_name - это наш самописный пакет с процедурой, которая и будет response генерить посредством PL/SQL ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2014, 18:43 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
haXbatbankir1980Переписал эти web приложения на ExtJs c Ajax по demand процессам и всё летает, все довольны :) А чем не угодил встроенный Jquery? EPG (embedded pl/sql gateway) почему не заменили на Apex Listener? Не угодил тем, что он какой то обкастрированный. Потому что всё это тянется с DB сервера грубо говоря. Да и дизайнить в Apex достаточно сложновато, чуть не стандарт - так сразу приходится долго ковыряться. А стандарт достаточно убогий. Сразу полный ajax интерфейс не получишь. Настройки кэширования разных файлов вообще непонятно как делается. Походу оно вообще не выдает хедэры для кэширования и всегда тянет все файлы (js, картинки и тп) с сервера. Сначала работали с апач и mod_plsql, после недели-двух работы сервер начинал жутко тормозить и приходилось перезагружать apache. Наш DBA как я понимаю после этого и перевел работу на Listener. Еженедельные затыки не наблюдаются, но скорость работы в целом не айс. На настройки сервера не пенять, DBA у нас хороший :) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2014, 18:56 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
ДА и вообще, как говорится Кесарю - кесарево. Не должна БД заниматься генерацией Web UI и клиентской логики работы. Даже сами разработчики оракла такое пишут, правда чёт к своему продукту не активно применяют. Однобоко получается. авторOverview of PL/SQL Web Applications Typically, a Web application written in PL/SQL is a set of stored subprograms that interact with Web browsers through HTTP. A set of interlinked, dynamically generated HTML pages forms the user interface of a web application. The program flow of a PL/SQL Web application is similar to that in a CGI PERL script. Developers often use CGI scripts to produce Web pages dynamically, but such scripts are often not optimal for accessing the database . Delivering Web content with PL/SQL stored subprograms provides the power and flexibility of database processing. For example, you can use DML, dynamic SQL, and cursors. You also eliminate the process overhead of forking a new CGI process to handle each HTTP request. То что CGI скрипты не оптимальны для оперирования с БД - это они написали. А то, что в APEX они пытаются сделать инструмент для дизайнинга WEB приложений, а сам APEX практически на PL/SQL написан (утрирую конечно :) ) и как бы тоже не предназначен для этого - про это они не пишут :) Так что мы просто разделили процессы. WebUI делает ExtJS, а выдачу и обработку данных - процедуры доступные через APEX demand процессы. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2014, 19:09 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
Прокомментирую, пожалуй bankir1980Судя по тому, что demand процессы отдают данные практически мгновенно, видимо тормоза возникают именно в построении апексом html страницы. Нужно было проверить, кто тормозит, apex debug для этого идеальное средство, указанное смотрится нескольки щелчками мыши bankir1980Можно конечно работать напрямую со своими процедурами доступными через PL/SQL Gateway без Apex, но там надо заморачиваться тогда с аутентификацией, сессиями и тд и тп. Если кому нужно чисто выцепить данные из БД в web клиент без заморочек, то apex и не нужен совсем. согласен, apex нужен, когда хочется, чтобы html генерировался сам bankir1980Не угодил тем, что он какой то обкастрированный. Потому что всё это тянется с DB сервера грубо говоря это верно только в случае использования embed PL/SQL Gateway, но он и не предназначен для использования в production вместе с apex-ом. В остальных случаях статические ресурсы, в том числе jquery тянутся с вебсервера bankir1980Походу оно вообще не выдает хедэры для кэширования и всегда тянет все файлы (js, картинки и тп) с сервера. что, конечно, неверно, но тут надо создать отдельную тему и смотреть конкретно, на примере bankir1980Сначала работали с апач и mod_plsql, после недели-двух работы сервер начинал жутко тормозить и приходилось перезагружать apache. Наш DBA как я понимаю после этого и перевел работу на Listener. Еженедельные затыки не наблюдаются, но скорость работы в целом не айс. Суровый у вас dba. апач с mod_plsql, был и остается самым высокопроизводительным решением для apex, имхо, а вот embed pl/sql gateway, если вы его имеете ввиду, для production с apex не предназначен, только для разработки, и действительно, может начать тормозить уже на небольшом количестве пользователей. bankir1980То что CGI скрипты не оптимальны для оперирования с БД - это они написали. А то, что в APEX они пытаются сделать инструмент для дизайнинга WEB приложений, а сам APEX практически на PL/SQL написан (утрирую конечно :) ) и как бы тоже не предназначен для этого - про это они не пишут :) между прочим, ваша фраза относится и про вызов процедуры, по ссылке выше, в кот. используют тот же самый pl/sql web toolkit, что использует и сам апекс. Пруфа, кстати, этому утверждению нет, все обсуждения на эту тему на уровне демагогии. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2014, 20:29 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
listener на glassfisf работает быстрее всгего и пользователей сотню уверенно держит ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2014, 22:33 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
У нас используется Listener сейчас. Даже сам Apex Application Builder тормозит. Бывает картинки рендерит через 2-3 секунды после открытия страницы. Например, https://ora-crs-scan.ldc01.l:1443/i/eba/img/eba_launchpad.png Blocking 3ms Waiting 7,03 s Receiving 0.500ms Это не моё приложение, эта картинка тянется в аппбилдере апексовском. И хром ее из кэша не берет, ибо респонс хедер картинки выглядит так Код: html 1. 2. 3. 4. 5.
Как видите, ничего тут про кэш нет. Так медленно не всегда открывается, бывает и быстро открывается. Всё тоже самое с другими ресурсами, то быстро откроет, то несколько секунд открывает. А вот пример запроса обычной страницы с одной таблицей. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
В хроме показывает время Blocking 8ms Connecting 4ms SSL 3 ms Sending 0ms Waiting 4,31 s Receiving 3ms На странице отражается 1 таблица на основе селекта. Хочу заметить, что селект этот накрученный с использованием функций в пакете. Для выборки нужных данных простой селект не сделать. Думаю именно из-за этого и тормоза. Но как еще тогда выборку отразить? Полностью рисовать таблицу через htp.p в процедуре? Но и время выполнения, если я правильно понял в дебаге, этого селекта как бы и незначительно. 0.00229 Execute Statement: SELECT decode(R..... а вот что дальше происходит мне непонятно 0.00018 print column headings 4.95481 rows loop: 15 row(s) Вот они 5 секунд и всплыли. Что означает rows loop:15 row(s) ? А вот доставка практически аналогичных данных, что в этой таблице отражается для ExtJs приложения. Респонс недеры Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
время Sending 0.997ms Waiting 398 ms В деманд процессе запускается процедура в пакете, которая делает выборку и формирует json формат. При этом в Apex таблице 15 записей отражается на странице. А в ExtJs грузится 50 записей этой же выборки на страницу. Для себя мы вывод сделали в пользу ExtJS. Время рассудит :) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2014, 10:16 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
Ёлки зеленые, а отредактировать сообщение нельзя чтоли? :) куки страницу растянул... Кстати, если непонятно в последнем абзаце про доставку данных,то это запрос данных с сервера для таблицы. Запрос вот так выглядит Remote Address:192.168.7.74:8085 Request URL: http://192.168.7.74:8085/apex/wwv_flow.show Request Method:POST Status Code:200 OK Request Headers Accept:*/* Accept-Encoding:gzip,deflate,sdch Accept-Language:ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4 Connection:keep-alive Content-Length:235 Content-Type:application/x-www-form-urlencoded; charset=UTF-8 Cookie:ORA_WWV_RAC_INSTANCE=1; O Host:192.168.7.74:8085 Origin: http://192.168.7.74:8085 Referer: http://192.168.7.74:8085/dmds.html User-Agent:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36 X-Requested-With:XMLHttpRequest Form Dataview sourceview URL encoded p_request:APPLICATION_PROCESS=GETDEMANDS p_instance:8674961479752 p_flow_id:999 p_flow_step_id:3 p_arg_names:3_PNAME p_arg_names:3_JSONDATA p_arg_values:dmds.html p_arg_values:{"page":1,"start":0,"limit":50} Form Data p_request:APPLICATION_PROCESS=GETDEMANDS p_instance:8674961479752 p_flow_id:999 p_flow_step_id:3 p_arg_names:3_PNAME p_arg_names:3_JSONDATA p_arg_values:dmds.html p_arg_values:{"page":1,"start":0,"limit":50} Тут 192.168.7.74:8085 - это на моем компе крутится nginx все ссылки содержащие "/apex/" он проксирует на https://ora-crs-scan.ldc01.l:1443 Так что получается, что запросы по урлу https://ora-crs-scan.ldc01.l:1443/apex/wwv_flow.show и не тормозят вовсе, а вот по /apex/f?p... - тормозят. Значит дело не в работе Listener или mod_plsql, т.к. это просто "приемопередатчики"... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2014, 10:28 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
Интересно, что моя же тема встплыла когда я опять стою перед выбором архитектурного решения) Почитал, отметил интересные моменты. Получается, что если делать например на ExtJS и подобным ему фраемворком, то в принципе, APEX как таковой и не нужен. Статика у нас будет на вэб сервере(любом в принципе), в бд будут процедуры, которые в JSON-е будут возвращать данные из бд(через описанный выше гетевэй), а на клиенте уже будут обрабатываться по требованию к интерфейсу. Так ведь получается? Но тут уже нужен проф. верстальщик, такак все будет на клиенте(если что то замороченное). И выйдет, что ты по сути превратишься в фронт-энд разработчика. Что мы приобретаем и что теряем в данном расскладе? PS: скорее всего получится много ручной работы, такак генерации старниц не будет как таковой, а описание их все будет на разработчике. И никакого декларативного подхода, если токо не считать такого подхода "вшитого" в сам фраемворк... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2014, 11:34 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
По конкретным отдельным вопросам лучше создавайте отдельные темы, чтобы их можно было детально обсудить. bankir1980У нас используется Listener сейчас. Даже сам Apex Application Builder тормозит. Бывает картинки рендерит через 2-3 секунды после открытия страницы. О чем уже сказано неоднократно мной было, embed pl/sql gateway не предназначен для production, не слышал ни про один случай, чтобы он использовался при приличном количестве пользователей вместе с apex. bankir1980Например, https://ora-crs-scan.ldc01.l:1443/i/eba/img/eba_launchpad.png Blocking 3ms Waiting 7,03 s Receiving 0.500ms Это не моё приложение, эта картинка тянется в аппбилдере апексовском. И хром ее из кэша не берет, ибо респонс хедер картинки выглядит так Как видите, ничего тут про кэш нет. Почему это, а ETag чем не устраивает ? bankir19800.00018 print column headings 4.95481 rows loop: 15 row(s) Вот они 5 секунд и всплыли. Что означает rows loop:15 row(s) ? Действительно, всплыли. Есть разница между временем выборки первой строки и временем выборки всех строк. rows loop:15 row(s) - это как раз время выборки всех строк. Запросы часто оптимизируют либо под first, либо под all rows. В данном случае тормозит запрос и его надо отлаживать, к апексу это не имеет отношения. Запросы могут выдавать разное время в зависимости от того, как написаны. Например, наличие/отсутствие bind variables, значение переменной, параметры сессии могут сильно повлиять на производительность запроса, опять же к апексу это отношения не имеет. И уж тем более это не имеет отношения, используете ли вы ExtJS. Дальнейшие выкладки запросов браузера далее лишено смысла. Хотите узнать в чем дело - создайте отдельную тему, посмотрите план запроса, когда вы его вызываете через ondemand, и когда вызываете через apex report, там будет видно в чем косяк. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2014, 12:02 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
SvDevВ данном случае тормозит запрос и его надо отлаживать, к апексу это не имеет отношения. Точнее может иметь, а может не иметь, тут надо смотреть. например, если выставить тип столбца значения, на основе запроса Display as Text (based on LOV, does not save state) и поставить на него сортировку, понятно, что запрос будет дописан очень жестко с подзапросом, и может начать тормозить, и такие опции лучше не использовать, лучше в source руками запрос дописать, но там очень много приколов оптимизации запросов, которые к апексу вовсе отношения не имеют, тут надо смотреть и отлаживать сам запрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2014, 12:20 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
kasikНо тут уже нужен проф. верстальщик, такак все будет на клиенте(если что то замороченное). И выйдет, что ты по сути превратишься в фронт-энд разработчика. Что мы приобретаем и что теряем в данном расскладе? PS: скорее всего получится много ручной работы, такак генерации старниц не будет как таковой, а описание их все будет на разработчике. И никакого декларативного подхода, если токо не считать такого подхода "вшитого" в сам фраемворк... Верстальщик чего? Кода? HTML? Я переписал одно из приложений на ExtJS всего за неделю (не с утра до вечера сидел, есть еще и основная работа) с учетом того, что это мой первый опыт разработки ExtJS и большинство времени ушло на изучение мануала по ExtJS и прикрутки ExtJS к APEX. Чтобы создавать страницы на APEX тоже потребуется грамотный кодер. Будет много нюансов всплывать, если что посложнее надо будет делать. Сам ExtJs фреймворк достаточно прост для изучения, если есть опыт работы с ООП языками. Если уж совсем нужно вывести только одну табличку без наворотов, то да, проще только апекс заюзать. авторскорее всего получится много ручной работы, такак генерации старниц не будет как таковой вот тут не соглашусь :) взять хотя бы вот этот пример http://docs.sencha.com/extjs/4.2.1/extjs-build/examples/grid/list-view.html Отображение таблицы с подгруженными данными. Нет тут в коде ничего из HTML. Его фреймворк сам генерит. Лезть в HTML придется разве что при необходимости нестандартных отражений стандартных элементов. Верстальщик HTML тут точно не нужен :) Конечно если сравнить формирование простой таблицы, вроде этого примера, то в апексе конечно быстрее реализовать. А вот представьте, что теперь надо сделать кнопку добавить и добавлять в эту таблицу данные. В ExtJS это делается по сути в несколько строк в текущий код. И никаких перезагрузок страницы при этом. Запись будет добавена на сервер при создании записи в таблице автоматически. При этом можно отработать и успешность/неуспешность отработки на сервере и в зависимости от этого сделать или коммит или режект записи на клиенте. Можно даже отправку на сервер сделать ручной. Добавлять в оффлайне записи, подключить коннект и всё "сбросить" на сервер. Всё это делается просто изменением пары параметров у объектов в коде. Точнее autoSync у объекта store вместо true поставить false. И добавить кнопку при нажатии на которую запустить store.sync(); - 3 строчки кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2014, 13:12 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
SvDevSvDevВ данном случае тормозит запрос и его надо отлаживать, к апексу это не имеет отношения. Точнее может иметь, а может не иметь, тут надо смотреть. например, если выставить тип столбца значения, на основе запроса Display as Text (based on LOV, does not save state) и поставить на него сортировку, понятно, что запрос будет дописан очень жестко с подзапросом, и может начать тормозить, и такие опции лучше не использовать, лучше в source руками запрос дописать, но там очень много приколов оптимизации запросов, которые к апексу вовсе отношения не имеют, тут надо смотреть и отлаживать сам запрос. Посмотрел этот тормозящий запрос в навигаторе. Если брать как есть, навигатор показывает выполнение 5 сек и отбирает при этом 83 записи из нескольки тысяч. из селекта убрал все функции, составил только столбцы таблицы. Из условия where так же убрал одну функцию. Теперь стало выполняться 1,5-2 секунды. Все остальные условия отборки происходят по полям таблицы. Условие муторное. Накладывается фильтр по полям, который задает пользователь в апексе. Причем не не просто (field=:p1_field or :p1_field is null) и так по всем полям, а есть еще и фильтрация сразу по нескольким полям and и or (группа). Всё это приходится втыкать в условие отборки, иначе как таблицу то отразить в апекс? там же регион и строится на основе селекта. Ввиду того, что в деманд процессе при использовании ExtJS я выборку делаю на PL/SQL, то при необходимости я могу сам сгенерировать запрос с нужными условиями в where тем самым исключив ненужные обработки оптимизатором и т.п. например. мне нужно сделать выборку из таблицы select field1, field2 from t и сделать фильтр по обоим полям. Для апекса это возможно только в виде Код: sql 1.
В PL/SQL я делаю так Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
это простейший пример для понимания. На самом деле такой подход целесообразен когда where сложный. Еще пример, у меня есть поле фильтра по значению в котором я хочу отобрать клиентов по коду или по наименованию или по ИНН. Быстрый поиск так сказать. в своей процедуре построения я смотрю, если на вход подается число, то в where добавляю фильтрацию по коду и ИНН, а если есть хотя бы одна буква, то в where фильтрации по коду и ИНН нет, только по названию. Еще пример. Допустим есть у меня таблица со списком клиентов, у каждого клиента есть счета и каждый клиент имеет признак офиса обслуживания. Мне нужно иметь возможность отфильтровать клиентов по офису или найти клиента со счетом (или счетами по маске, например). счета у меня хранятся в отдельной таблице. в Апекс мне всегда нужно иметь в условия отбора проверку наличия счета у клиента по маске и условие отбора по признаку офиса. Естественно в обоих условиях есть и проверка на нулевое значение. Получается типа Код: sql 1.
Для ExtJS я просто сделаю проверку на пустое значение :p1_accmask и если оно пустое, то мой запрос будет выглядеть так Код: sql 1.
а если пустое поле :p1_office, то ничто мне не мешает вообще другой запрос сделать, например Код: sql 1.
или Код: sql 1.
В зависимости от того, чей план выполнения лучше. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2014, 14:00 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
bankir1980, Для Report Region выбирается тип PL/SQL function body returning SQL query и пишется тоже самое. Для Tabular Form такое нужно крайне редко, проще пересмотреть подход к интерфейсу, но при желании, тоже можно обойти, например, переписав форму через apex_item ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2014, 14:33 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
SvDev, Замечу, если office всегда not null, иногда бывает лучше переписать Код: plsql 1.
на Код: plsql 1.
оптимизатор oracle такое в определенных ситуациях лучше обрабатывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2014, 14:43 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
bankir1980 взять хотя бы вот этот пример http://docs.sencha.com/extjs/4.2.1/extjs-build/examples/grid/list-view.html ... Верстальщик HTML тут точно не нужен :) ... Пример из санчи, но в принципе, без разницы. В принципе не нужен, так как все будет генерится фраемворком самостоятельно и коссбраузерно(должно)... Это написал потому что на последнем проекте столкнулся с большой необходимости хорошего верстиальщика, так как я прикручивал бутстрап к апексу, и ся верстака сыпалась, и большую часть времени приходилось отлаживать именно ее. В ExtJS такого не должно быть, потому что просто не будут шаблоны использоваться апексовые, точней будут, но измененные под ExtJS. И такой подход лучше, потому что спаривать апексовые js и css очень муторно, легче их выкинуть и вставить фраемворковские, но я их оставлял потому что для гридов они были необходимы, они были стандартные(надо было подумать об их изменении, это я уже сейчас с вершины времени себе же говорю) ). Так что для таких фраемворков как ExtJS, согласен, верстальщик в 95% случев не нужен, он сам все сделает. По поводу моего вопроса выше, который был всеми проигнорирован, или не замечен, отвечу сам. Самый главный косяк в выкидывании апекса как звена, это таже аутентификация, сессионность и все подобное, тогда можно оставить апекс для этого дела и для хранения шаблонов страниц, ну и остается декларативное описание сущностей страниц, ну и все плюшки в виде DA. Как то так... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2014, 16:02 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
SvDevbankir1980Например, https://ora-crs-scan.ldc01.l:1443/i/eba/img/eba_launchpad.png Blocking 3ms Waiting 7,03 s Receiving 0.500ms Это не моё приложение, эта картинка тянется в аппбилдере апексовском. И хром ее из кэша не берет, ибо респонс хедер картинки выглядит так Как видите, ничего тут про кэш нет. Почему это, а ETag чем не устраивает ? Тем, что картинка отражается на странице через несколько секунд, а не сразу :) Да, хром показывает что статус этого файла картинки Not Modified и в итоге берет ее из кэша. Но делает это он только после получения ответа с этим самым тегом ETag. И получает он этот ответ через 7 секунд. Да если бы и не было ETag, и файл модифицировался, не думаю, что 30 кБ этого файла тянулись бы с сервера более нескольких милисекунд. Так что что есть, что нет - особой разницы нет. Всё равно долго. Конечно, я не спорю о возможностях Апекс при правильном подходе, но мне лично кажется, что пусть у меня сначала откроется страница с пустой таблицей моментально с надписью "Загрузка данных" и крутящимся колесом, а потом в течение 1-2-3 секунд там появятся данные, чем ждать пока вся страница отобразится в браузере через 1-2-3 секунды. Просто иногда разбражает, думаешь что комп тормозит или инет отвалился или... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2014, 17:18 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
Сделайте что бы контент для таблицы подтягивался асинхронно с загрузкой самой страницы, то есть загрузится каркас страницы а контент уже после через ajax. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2014, 17:23 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
kasik По поводу моего вопроса выше, который был всеми проигнорирован, или не замечен, отвечу сам. Самый главный косяк в выкидывании апекса как звена, это таже аутентификация, сессионность и все подобное, тогда можно оставить апекс для этого дела и для хранения шаблонов страниц, ну и остается декларативное описание сущностей страниц, ну и все плюшки в виде DA. Как то так... Я про это еще на 1-й странице написал :) Мы и юзаем апекс чисто только ради аутентификации и сессионности. Ну и 3 глобальные переменные сессии - логин, имя пользователя и офис, чтобы при каждом коннекте не селектить из таблицы. Хотя по большому счету и без них можно. Их же можно и на клиенте хранить. От Apex мы ни одного HTML тега не получаем и его ресурсами (css, js, картинки) вообще не пользуемся. ресурс /f?p=... юзается только один раз для установления сессии. Да и то сам Апекс нам его подкидывает - редирект на Home page при запросе урла аутентификации. В ней (хомпейдж) есть процесс After Footer, который нафиг всё, что нагенерил апекс скидывает и возвращает json формат в котором success=true (аутентификация успешна) instance_id (который идет в паре с кукис сессии и мы его в дальнейшем используем при ondemand процессах). если логин неправильный, то апекс редиректит на страницу логона (101-я обычно), там тоже всё нафиг скидывается в afterfooter и возвращается success=false reason = authentification failed. Если таймаут сессии на сервере происходит, то апекс всегда и перекидывает на 101-ю и мы получаем сигнал отвала сессии и далее обрабатываем уже как нам нужно. Например, у меня в одном месте сделано так, что если при отправке данных на обновление из таблицы возвращается такой сигнал, то у меня автоматом выскакивает окно ввода логина/пароля и после успешной аутентификации отправка данных повторяется и всё сохраняется. В итоге, если забил какие то данные в таблицу а сессия вдруг отвалилась, данные у меня не потеряются. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2014, 17:41 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
kasikСделайте что бы контент для таблицы подтягивался асинхронно с загрузкой самой страницы, то есть загрузится каркас страницы а контент уже после через ajax. Ага, и получим траблы с пагинацией по этой таблице :) знаем, плавали :) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2014, 17:46 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
bankir1980Ага, и получим траблы с пагинацией по этой таблице :) знаем, плавали :) В смысле? Разве нельзя в соурсах грида написать аджакс запрос? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2014, 18:02 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
bankir1980Конечно, я не спорю о возможностях Апекс при правильном подходе, но мне лично кажется, что пусть у меня сначала откроется страница с пустой таблицей моментально с надписью "Загрузка данных" и крутящимся колесом, а потом в течение 1-2-3 секунд там появятся данные, чем ждать пока вся страница отобразится в браузере через 1-2-3 секунды. Просто иногда разбражает, думаешь что комп тормозит или инет отвалился или... Не всегда же затык на стороне сервера, страницы чаще пишутся так, чтобы они отдавались быстро, а пользователи могут коннектится из других городов, например, через перегруженные сети, у них затык на уровне сети может быть, и лишние аякс запросы заметно замедляют общее время прогрузки страницы, так как лишние запросы идут через сеть. Тогда удобнее подождать один раз, когда страница загрузится, чем ждать еще потом несколько раз, пока все компоненты прогрузятся. Исключение, когда страницы перегружены элементами и информацией, но это уже скорее не к ExtJS, а к подходам. В любом случае, эта проблема так же решаема, подгружаются регионы через ajax, проблемы с нумерацией можно решить, с этим я не заморачивался, не нужно было, но можно даже написать плагин, вроде этого http://www.apex-plugin.com/oracle-apex-plugins/dynamic-action-plugin/refresh-reports-w-pagination_365.html ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2014, 10:46 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
APEX никогда не позиционировался как средство разработки масштабируемых приложений. Он позиционировался как RAD для программистов Oracle, пишущих на PL/SQL и не желающих изучать Java (программисты и администраторы баз данных Oracle, программисты Oracle Forms). Разрабатываемые при этом приложения - утилиты, приложения Предприятия уровня Рабочей группы, Отдела, небольшого Департамента. Для более масштабных приложений, как приложения для всего Предприятия и т.д. Oracle позиционировал WebLogic, Jdeveloper, ADF. Однако, и на APEX написаны достаточно нагруженные приложения, например, Oracle Learning Library (некоторое время назад Metalink был тоже на APEX) Ссылки на приложения, написанные на APEX от Oracle Топик "Сайты на APEX" с форума Поэтому, разговоры про "тормознутость" APEX, идут, в основном, от обладателей прямых рук и светлых голов. SvDevbankir1980Сначала работали с апач и mod_plsql, после недели-двух работы сервер начинал жутко тормозить и приходилось перезагружать apache. Наш DBA как я понимаю после этого и перевел работу на Listener. Еженедельные затыки не наблюдаются, но скорость работы в целом не айс Суровый у вас dba. апач с mod_plsql, был и остается самым высокопроизводительным решением для apex, имхо, а вот embed pl/sql gateway, если вы его имеете ввиду, для production с apex не предназначен, только для разработки, и действительно, может начать тормозить уже на небольшом количестве пользователей. SvDev, вы тоже суровый. Просто не поленитесь посмотрите что такое Oracle REST Data Services (ранее известный как Oracle APEX Listener) . Многое вам откроется заново. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2014, 15:21 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
Michael Isaev, Открою вам секрет: использую их оба и давно. И если кто-то пишет, что apex listener быстрее, я бы этому не стал верить, это нужно проверять и перепроверять, особенно если используются SSL и др. опции. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2014, 16:43 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
Michael Isaev Однако, и на APEX написаны достаточно нагруженные приложения, например, Oracle Learning Library (некоторое время назад Metalink был тоже на APEX) Ссылки на приложения, написанные на APEX от Oracle Топик "Сайты на APEX" с форума Посмотрел. Не нашел ни одного сайта, где работа идет с табличными цифровыми данными. В большинстве своем сайты-визитки, где даже динамическая подгрузка не нужна - достаточно и переход по урлу. Основной контент - это текстовые данные, хранение которых наверняка организовано "в одной" таблице в виде html без необходимости выборки по 5-10 и более таблиц сразу да еще с миллионами записей да еще с вычислениями. простой пример. Нужно мне отобразить средние остатки по счетам клиентов за год. Запрос будет выполняться несколько секунд (о наличии хранилища данных с подготовленными данными не говорим, это уже другая тема). Будет ли это открываться страница несколько секунд или загружаться непосредственно таблица несколько секунд - это очень разные вещи и отношение к этому разное у пользователя. В случае с ExtJS пока грузятся данные в таблицу, я могу еще что то открыть или делать в этом же приложении не дожидаясь окончания загрузки. И делается это всё без танцев с бубном :) Открытие одной страницы в бизнес приложении может равняться по затрачиваемым ресурсам открытию нескольких десятков таких вот сайтов-визиток одновременно. Активное использование Ajax распараллеливает процесс. Если мне необходимо загрузить информацию о клиенте с разных таблиц-источников (контакты, счета, документы и тп). То в случае с ExtJS у меня будет несколько запросов к БД и каждый будет выполняться в своем отдельном процессе, а в случае с АПЕКС, если опять же не прикручивать аякс, в одном последовательно. Пока что интегрировать аякс в Апексе без танцев с бубном практически невозможно. Чтобы мне сделать независмо подгрузку данных в разные таблицы, мне нужно сделать страницу с кодом, который будет подгружать регион динамически (необходимо писать при этом JavaScript и получить проблемы с пагинацией или плагины какие-нибудь) и сделать страницы с этими регионами. При этом грузится в результате запроса вся страница с этим регионом, а в итоге задействованы только данные региона, всё остальное отбрасывается, для ускорения процесса приходится еще и шаблон отдельный делать для таких страниц, с минимумом html, чтобы чисто только данные региона возвращались. Технология прям супер, ничего не скажешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2014, 11:29 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
bankir1980...получить проблемы с пагинацией ... Вы так и не объяснили, какого плана проблемы... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2014, 11:42 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
Пагинация таблицы работает в контексте всей страницы, ибо в ещё недрах присутствуют переменные хранящие текущую страницу, количество записей на странице и прочую хрень типа кода обработки некст прев и тп. В контексте региона, выдранного с другой страницы это все добро с ходу не работает и нужно допиливать руками. Может уже в последних релизах апекса что то и сделали. Начинал работать с ним ещё с 3 версии. Сейчас 4.2 вроде бы. Уже не слежу. Но на текущий момент я свой выбор сделал. Это extjs и java web сервер заточенный именно под задачу обмена json данными с oracle и написанный буквально за неделю(когда писал свой прошлый пост, ещё такого плана и в мыслях не было :) ). Вполне вероятно, что апексу помашем ручкой на прощанье в ближайшее время. Пока же jmeter показывает неплохие результаты работы нового вебсервера. При 100 запросах, требующих формирования выборки в оракле (таблица около 10000 записей. Отобранное количество примерно 400. Возвращает в интерфейс страницу в 50) в 10 секунд (10 веб запросов в секунду) показывает время отдачи данных на веб запрос от 300мс до 2 секунд. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2014, 23:26 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
Блин, а мы жуем этот кактус и нормально получается делать высоконагруженные приложения :) Тормозов апекса не ловили - если что-то тормозит, это выборки данных, которые всегда можно ускорить различными методами. Вот что реально боль и страдание - это запуск одной страницы (один page_id) сразу в нескольких вкладках. Да и ajax-ом грустно не иметь возможности стандартно передавать регионы. Если отходить от "визиточных сайтов", то приходится познавать все прелести HTML + CSS + JS и логики сервера на PLSQL. Есть вещи, которые перенастроить в апексе нельзя - например, обычный отчет в любом шаблоне апекс генерирует с ошибками в html! достаточно сделать группировку в отчете - и пожалуйста, несколько элементов на странице с одинаковым id! Очень злит постоянное решение этих ребусов! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2014, 18:50 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
kuz9000Блин, а мы жуем этот кактус и нормально получается делать высоконагруженные приложения :) Тормозов апекса не ловили - если что-то тормозит, это выборки данных, которые всегда можно ускорить различными методами. Вот что реально боль и страдание - это запуск одной страницы (один page_id) сразу в нескольких вкладках. Да и ajax-ом грустно не иметь возможности стандартно передавать регионы. Если отходить от "визиточных сайтов", то приходится познавать все прелести HTML + CSS + JS и логики сервера на PLSQL. Есть вещи, которые перенастроить в апексе нельзя - например, обычный отчет в любом шаблоне апекс генерирует с ошибками в html! достаточно сделать группировку в отчете - и пожалуйста, несколько элементов на странице с одинаковым id! Очень злит постоянное решение этих ребусов! То то и оно. А если уж познавать прелести, то почему бы не облегчить себе жизнь использованием хотя бы того же extjs. Пишу на нем как на обычном ООП языке, как на java, а получаю html, хотя его в коде нет ни строчки. И с css то же самое. И получается интерфейс отдельно. Данные отдельно. Поменять потом если нужно будет интерфейс, например расположение, или дополнить функциональность можно даже не залезая в апекс. И да, используя extjs открыть несколько окон или вкладок одного интерфейса с разными данными вообще не проблема. Никакие page_id и прочие itemы на это не влияют... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2014, 22:17 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
Вот тут ребята продают готовое решение ExtJs + Apex FOEX и не дешево продают Так что вопрос, какие JS библиотеки использовать с Apex и использовать их вообще, это вопрос привычки и вдохновения ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2014, 12:16 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
Что-то подобное FOEX должно появляться в APEX 5.1 New Multi-Row Edit Region Type – Define a new region type with a modern UI for updating multiple rows of data and allow multiple regions on one page. А тут чем дело кончилось? http://suppler.blogspot.ru/2013/08/blog-post.html Где можно скачать этот плагин на тестирование? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2014, 07:18 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
Люля, Я для своего проекта загнал http://demos.telerik.com/kendo-ui/grid/index в плагин. Единственный минус - зависимость от pl/json. В планах перевести выдачу данных с сервера с json на xml, тогда будет проще выставить демку на apex.oracle.com ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2014, 12:13 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
Хороший вопрос почему ораклисты предпочли выбрать в свое время jquery против extjs. Что такого замечательного умеет делать extjs что не умеет делать jquery ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2014, 23:10 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
ferimorХороший вопрос почему ораклисты предпочли выбрать в свое время jquery против extjs. Что такого замечательного умеет делать extjs что не умеет делать jquery Потому, что они заботятся о тебе и твоем кошельке: jquery бесплатен, а для extjs надо покупать лицензии. А так, для самостоятельных работ, никаких препятствий нет, даже книжка по этой теме была. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2014, 11:07 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
ЛюляЧто-то подобное FOEX должно появляться в APEX 5.1 New Multi-Row Edit Region Type – Define a new region type with a modern UI for updating multiple rows of data and allow multiple regions on one page. Это все конечно здорово, но "у нас" не применимо, т.к... фиксация изменений делается нашей процедурой! Это не хорошо, не плохо, а один из подходов к работе с триггерами, и он решительно исключен запрятанными коммитами апекса :( ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 14:50 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
А между тем я уже отказался от APEX для Ext JS совсем. Для обработки json обмена с Oracle реализовал небольшой WEB-сервер, написанный на Java (jar файл 35 кБ :) ). Супер наворотов у него нет. Делает только самые необходимые действия. 1. Отдает статику. Естественно есть поддержка кэширования статики. Проверка даты изменения статичного файла по хедерам. 2. Транслирует GET, POST параметры полей в json (или берет уже готовый при отправке jsonData в ajax request-ах) и передает в оракловую процедуру через CLOB переменную, где она уже парсится с использованием PL/JSON. Возврат результата так же в json через CLOB переменную. Результат из CLOB отдается в браузер. 3. Вот только вчера добавил поддержку загрузки бинарных данных для скачивания файла, содержимое которого на самом деле генерится опять же процедурами но с использоваинем для обмена м/у Оракл и веб сервером BLOBов. 4. Есть поддержка GZIP. Для статик файлов - файл шифруется в gz формат (7-zip ом, например). и размещается в каталоге статика. Веб сервер на запрос, например, mycode.js сначала в статике проверяет наличие файла mycode.js.gz и если находит, то отдает его. В итоге тот же ext-all.js из 4 мБ превращается в 300 кБ. 5. Соединение с Oracle через JDBC. Используется пул соединений ( http://commons.apache.org/proper/commons-dbcp/ ) 6. Фиксирует сессии при аутентификации. Выполняется путем запуска в оракле процедуры аутентификации, которая возвращает true или false ну и данные сессии в json. 7. Реализовал поддержку TLS, но работу не проверял. Возможности не было... Работает на OC Windows и Linux (у нас крутится на CentOS, на других не пробовали). Кому интересно, можете связаться со мной по координатам, указанным вот тут ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2014, 17:16 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
Не в обиду конечно будет сказано, но то что вы тут пишете, очень похоже на сравнение самодельного велосипеда (а точнее самоката), который прекрасно решает только нужные вам задачи (сгонять в ларек за пивом), с серийным автомобилем, который быстро и комфортно решает задачи бизнеса. Все эти фразы, типа "я за полчаса написал такое, что ораклу и не снилось" выглядят мягко говоря смешно. APEX решает свои задачи, а ваш велосипед - свои. Масштабы к сожалению несравнимы. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2014, 21:21 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
NoGotНе в обиду конечно будет сказано, но то что вы тут пишете, очень похоже на сравнение самодельного велосипеда (а точнее самоката), который прекрасно решает только нужные вам задачи (сгонять в ларек за пивом), с серийным автомобилем, который быстро и комфортно решает задачи бизнеса. Все эти фразы, типа "я за полчаса написал такое, что ораклу и не снилось" выглядят мягко говоря смешно. APEX решает свои задачи, а ваш велосипед - свои. Масштабы к сожалению несравнимы. Может Вам и смешно, но здесь общаются не только мегаразработчики с мегапроектами под миллионы пользователей. Кому то может будет интересен и велосипед для быстрой разработки каких-то небольших задач. И уж тем более решение небольшой задачи никак не требует её решения на Апексе. Хотя... Если быть более точным - у нас есть среда разработки на серверной стороне - это PL/SQL и есть люди, которые по каким то соображениям хотят использовать именно ExtJS. А это среда разработки клиентской стороны. Примение здесь Апекса совсем ни к чему. Так что скорее это прикручивание ExtJS к Apex больше похоже на создание велосипеда из... другого велосипеда. Для мегапроектов я бы стал использовать уж точно ни своё решение, ни Apex. Я ни сколько не хвалю своё решение. Я просто констатирую итог всего моего рассуждения на предыдущих страницах. Либо использовать Apex по полной и не париться с ExtJS и получить (моё личное мнение) ограничения по функциональности в создании юзеринтерфейса, либо заморачиваться ExtJS, но тогда стоит подумать, что будет на серверной стороне - apex или любой другой скриптовый язык (некоторые даже часто под мегапроекты используются), который еще знать надо, либо какие то промышленные гейты для JSON, ну или изучить моё решение для небольших задач. Всё равно задача Апекса в таких случаях начинает сводиться чисто к ведению сессий и аутентификации. PS. Прошу прощения, если кого-то ввожу в заблуждение, думал в этой ветке писал о том, что у нас это дело используется под небольшие задачи с количеством пользователей не больше сотни и доступом через внутренние сети (ipsec туннели) из десятка городов России, включая такие удаленные, как Норильск и Красноярск. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2014, 16:12 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
bankir1980 Либо использовать Apex по полной и не париться с ExtJS и получить (моё личное мнение) ограничения по функциональности в создании юзеринтерфейса, либо заморачиваться ExtJS, но тогда стоит подумать, что будет на серверной стороне - apex или любой другой скриптовый язык (некоторые даже часто под мегапроекты используются), который еще знать надо, либо какие то промышленные гейты для JSON, ну или изучить моё решение для небольших задач. bankir1980Всё равно задача Апекса в таких случаях начинает сводиться чисто к ведению сессий и аутентификации. Не нужен для этого апекс, и использовать его чисто для этого не следует. Апекс это не веб сервер с парочкой процедур авторизации, которые и так не сложно написать. Это фреймворк. Он используется для декларативного программирования. Программируете шаблоны, плагины и т.д., в результате на определенном уровне интерфейс создается декларативно, знание extjs уже не нужно. Получаете плюшки от такого подхода в дальнейшем, облегчаете себе сопровождение и дальнейшую разработку. Причем для основных не extjs задач шаблоны html уже все написаны, да и плагины под extjs встречаются готовые. В случае с extjs нужно потрудиться, чтобы все интегрировать, это да, апекс изучать нужно серьезно, специалисты нужны, работы много. Эффект меньше, чем от использования стандартного функционала. А есть ли желание разрабатывать декларативно и заниматься такой интеграцией или же отказываться от апекс или же совмещать декларативную разработку апекс с его элементами с разработкой элементов на extjs - вот в этом и есть выбор в данном случае. В зависимости от задачи декларативная разработка это не всегда обязательно хорошо, зато даёт много плюшек. Каждый сам решает, что для него важно в каждой конкретной ситуации. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2014, 20:45 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
SvDevНе нужен для этого апекс, и использовать его чисто для этого не следует. Апекс это не веб сервер с парочкой процедур авторизации, которые и так не сложно написать. Это фреймворк. Он используется для декларативного программирования. ... Каждый сам решает, что для него важно в каждой конкретной ситуации. Ну вот и я о том же. Если решили использовать ExtJs, то стоит подумать, использовать ли на серверной стороне Apex. Зачем тянуть 2 фреймворка? Мы свой выбор сделали, который показал, что в НАШИХ условиях на НАШИХ задачах мы не прогадали. Чего и другим желаю :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2014, 09:56 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
bankir1980SvDevНе нужен для этого апекс, и использовать его чисто для этого не следует. Апекс это не веб сервер с парочкой процедур авторизации, которые и так не сложно написать. Это фреймворк. Он используется для декларативного программирования. ... Каждый сам решает, что для него важно в каждой конкретной ситуации. Ну вот и я о том же. Если решили использовать ExtJs, то стоит подумать, использовать ли на серверной стороне Apex. Зачем тянуть 2 фреймворка? Мы свой выбор сделали, который показал, что в НАШИХ условиях на НАШИХ задачах мы не прогадали. Чего и другим желаю :) То, что вы делали, сделали до вас - FormSpider . Стоит недорого. Внутри Tomcat, Java, JavaScript, ExtJS и JQuery для мобайла. Для разработчика только PL/SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2014, 21:31 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
как всегда пролеталbankir1980пропущено... Ну вот и я о том же. Если решили использовать ExtJs, то стоит подумать, использовать ли на серверной стороне Apex. Зачем тянуть 2 фреймворка? Мы свой выбор сделали, который показал, что в НАШИХ условиях на НАШИХ задачах мы не прогадали. Чего и другим желаю :) То, что вы делали, сделали до вас - FormSpider . Стоит недорого. Внутри Tomcat, Java, JavaScript, ExtJS и JQuery для мобайла. Для разработчика только PL/SQL. Это не так. Вы привели в пример фреймворк для веб разработки, т.е альтернативу Апексу, который обслуживает и клиентскую и серверную сторону. Я же написал чистый веб сервер - шлюз для json обмена с ораклом. На клиентской стороне у меня extjs, на серверной процедуры оракула. Сравнениe мягкого и зелёного :) Но реклама удалась. Теперь я в курсе наличия такого платного фреймворка. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2014, 23:26 |
|
ExtJS в разрезе апекса. за и против.
|
|||
---|---|---|---|
#18+
Интересно было почитать переписку почти 6-ти летней давности :) Между тем, банк, в котором я внедрял все свои наработки развалился, сейчас все эти наработки работают в другом банке :) За это время java веб сервер переписал в Web App приложение (war) и теперь оно работает в контейнере на Jetty сервере. Всё работает стабильно. На веб клиенте пишу на ExtJs 6-й версии, в котором по сравнению с 4-м появились новые полезные плюшки для более быстрой разработки. На сервере - pl/sql пакеты. Простой пример вывода таблички. На ExtJs (чисто пример, без использования sencha cmd и прочих плюшек) Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40.
На оракле: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
jwg_utils - это просто вспомогательный пакет для генерации данных в pljson объект из SQL с возможностью привязки переменных и спецификой extjs (обработка фильтрации, сортировки, пагинации, запрашиваемой из extjs, подсчет общего количества записей по запросу) В данном примере web клиент для получения данных таблицы дёргает урл '/json/public@jwg_test.get_table', а в результате вызывается jwg_test.get_table_public Кому интересны подробности, пишите в личку, т.к. обсуждение этой технологии выходит за рамки Oracle APEX :) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2020, 23:56 |
|
|
start [/forum/topic.php?all=1&fid=50&tid=1873918]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
138ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
82ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 271ms |
0 / 0 |