Разработчики Akonadi пытались предложить его в качестве стандарта в FreeDesktop, однако там долго-долго думали, и ответили что пока не могут принять этот стандарт, т. к. он написан на C++, а они любят Си. Ну и ввиду того, что Gnome'ры пока не собираются менять свой evolution-data-server на Akonadi.
Хотя бы потому, что страница может быть длинной, и прокрутить её нужно более чем на «один вертикальный тачпад» (т. е. от верхней кромки тачпада до нижней). А с круговой прокруткой — нарезаешь круги и радуешься :–)
Jaxer на сервере позволяет писать код приложения на JavaScript. Статистика ведь проводилась по языкам, на которым написаны приложения, а не серверное ПО (иначе, учитывался и победил бы C линукса и не-помню-что Апача (-: )
Не уверен, но думается, что Jaxer позволяет так же и не показывать структуру БД.
Кстати, использование jQuery решает эту проблему, потому как у ней внутре неонка внутренняя реализация событий в этом фреймворке как раз использует подобное решение.
По событию анлоад я убираю потому, что так сделано в примере кода в статье. Я ж не говорю, что это давно отработанный приём, использующийся на двадцати пяти сотнях сайтов. Я сказал лишь только, что это аналог кода, приведённого в статье.
Хороший плагин. Универсальный и большой. Предложенный мною код меньше, ориентирован на конкретную проблему/задачу и является просто уменьшенным вариантом описанного в статье кода. Возможно, пригодится кому-нибудь (как минимум, мне самому).
Вместо formUploader.prepareForm(document.getElementById('the_form')); нужно написать $.enhanceFormsBehaviour()
Скоро оформлю в виде полноценного плагина, с функциями отклика (callback), на которые можно будет повесить показ различных крутилок-вертелок и иных действий, символизирующих работу формы.
Вообще, Kopete даже в статье упоминается, и если до сих пор нет — значит лишь то, что ещё руки не дошли.
За него и проголосовал.
sudo /etc/init.d/hal restart) и иксы (Ctrl+Alt+Backspace, например)sudo /etc/init.d/hal restartНе уверен, но думается, что Jaxer позволяет так же и не показывать структуру БД.
у ней внутре неонкавнутренняя реализация событий в этом фреймворке как раз использует подобное решение.:submitловит не только инпуты-сабмиты, но и баттоны-сабмиты.По событию анлоад я убираю потому, что так сделано в примере кода в статье. Я ж не говорю, что это давно отработанный приём, использующийся на двадцати пяти сотнях сайтов. Я сказал лишь только, что это аналог кода, приведённого в статье.
(function($) { $.enhanceFormsBehaviour = function() { $('form').enhanceBehaviour(); } $.fn.enhanceBehaviour = function() { return this.each(function() { var submits = $(this).find(':submit'); submits.click(function() { var hidden = document.createElement('input'); hidden.type = 'hidden'; hidden.name = this.name; hidden.value = this.value; this.parentNode.insertBefore(hidden, this) }); $(this).submit(function() { submits.attr("disabled", "disabled"); }); $(window).unload(function() { submits.removeAttr("disabled"); }) }); } })(jQuery);Вместо
formUploader.prepareForm(document.getElementById('the_form'));нужно написать$.enhanceFormsBehaviour()Скоро оформлю в виде полноценного плагина, с функциями отклика (callback), на которые можно будет повесить показ различных крутилок-вертелок и иных действий, символизирующих работу формы.