javascript - Каковы плюсы и минусы использования extjs? Плюсы и минусы javascript


Каковы плюсы и минусы добавления элементов

Блокирующий характер document.write

document.write остановит все, что браузер работает на странице (включая синтаксический анализ). Настоятельно рекомендуется избегать из-за этого поведения блокировки. В браузере нет способа узнать, что вы собираетесь вставлять в текстовый поток HTML в этот момент, или будет ли запись полностью уничтожать все в дереве DOM, поэтому она должна остановиться, пока вы не закончите.

По сути, загрузка скриптов таким образом заставит браузер перестать анализировать HTML. Если ваш script находится в строке, браузер также выполнит эти сценарии до его продолжения. Поэтому в качестве побочного примечания всегда рекомендуется отложить загрузку скриптов до тех пор, пока ваша страница не будет проанализирована, и вы продемонстрировали пользователю разумный пользовательский интерфейс.

Если ваши скрипты загружаются из отдельных файлов в атрибуте "src", тогда сценарии могут не выполняться последовательно во всех браузерах.

Утрата оптимизаций и предсказуемости скорости браузера

Таким образом, вы теряете много оптимизаций производительности, которые делают современные браузеры. Кроме того, когда ваши скрипты выполняются, они могут быть непредсказуемыми.

Например, некоторые браузеры будут запускать скрипты сразу после их "записи". В таких случаях вы теряете параллельную загрузку скриптов (потому что браузер не видит второй тег script, пока он не скачал и не выполнил первый). Вы теряете параллельные загрузки скриптов и таблиц стилей и других ресурсов (многие браузеры могут одновременно загружать ресурсы, таблицы стилей и скрипты).

Некоторые браузеры откладывают скрипты до тех пор, пока они не будут выполнены.

Браузер не может продолжать анализировать HTML, пока выполняется document.write, и в некоторых случаях, когда написанные скрипты выполняются из-за поведения блокировки document.write, поэтому ваша страница отображается намного медленнее.

Другими словами, ваш сайт стал таким же медленным, как и загрузка на многолетнем браузере без оптимизации.

Зачем кому-то это делать?

Причина, по которой вы, возможно, захотите использовать что-то вроде этого, обычно для ремонтопригодности. Например, у вас может быть огромный сайт с тысячами страниц, каждый из которых загружает один и тот же набор сценариев и таблиц стилей. Однако, когда вы добавляете файл script, вы не хотите редактировать тысячи HTML файлов, чтобы добавить теги script. Это особенно сложно при загрузке библиотек JavaScript (например, Dojo или jQuery) - вам нужно изменить каждую HTML-страницу при обновлении до следующей версии.

Проблема заключается в том, что JavaScript не имеет оператора @include или @import для включения других файлов.

Некоторые решения

Решение этого, вероятно, не путем ввода скриптов через document.write, а путем:

  • Использование директив @import в таблицах стилей
  • Использование языка сценариев сервера (например, PHP) для управления вашей "главной страницей" и для создания всех других страниц (однако, если вы не можете использовать это и должны поддерживать много HTML-страниц отдельно, это не решение)
  • Избегайте document.write, но загружайте файлы JavaScript через XHR, затем eval() - это может иметь проблемы с безопасностью, хотя
  • Используйте библиотеку JavaScript (например, Dojo), которая имеет функции загрузки модуля, чтобы вы могли хранить главный файл JS, который загружает другие файлы. Вы не сможете избежать обновления номеров версий файла библиотеки, хотя...

qaru.site

javascript - Каковы плюсы и минусы использования extjs?

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

ExtJS

отлично подходит для одностраничного приложения RIA, где инфраструктура ExtJS загружается один раз на странице со следующим кодом с кодировкой 0 вручную. Это означает, что структура управляет ВСЕМ в вашем приложении.

JQuery

случай использования сильно отличается: ваша инфраструктура на стороне сервера генерирует HTML (через JSP, GSP, ASP, независимо), и вы добавляете функциональность к этим страницам, включая библиотеку JQuery.

ExtJS Минусы:

  1. Сложная структура - не для слабонервных :)
  2. Крутая кривая обучения
  3. Есть ошибки - да есть. Однако большинство проблем возникает из-за неправильного использования фреймворка и недостаточно понимания документации.
  4. Развивающиеся рамки - это можно рассматривать как + и - но в этом году было выпущено 7 релизов.

ExtJS Плюсы:

  1. Действительно универсальная клиентская среда MVC с самым полным набором компонентов и виджетов, доступных в настоящее время.
  2. Extensible. Буквально Ext.extend () - это первое, что вы делаете.
  3. Красивый. Тема «из коробки» настолько хорошо разработана, что большинство разработчиков без навыков воспроизведения (мы не указываем пальцы) можем создавать действительно профессиональные и привлекательные веб-приложения.
  4. Документация, безусловно, лучшая, что я видел в любой библиотеке, API или проекте с открытым исходным кодом. В комплекте с документами API (хотя есть некоторые отверстия) с образцами живого кода, которые вы можете настроить и посмотреть, что происходит + исходный код. Большие примеры охватывают большую часть библиотеки. Отличные руководства по наиболее важным темам от MVC до Theming. Даже видео-библиотека. Недавно эта документация была значительно обновлена, поэтому, если вы не видели за последние

code-examples.net

javascript - GWT против ScriptSharp Плюсы и минусы

Я использую Script # и ранее использовал GWT. Они действительно две разные вещи. GWT предназначен для предоставления клиентского и серверного решения с RPC и всем остальным. Это определенно более зрелый, и вы можете быстрее перейти на сложные приложения. Проще говоря, в дикой природе гораздо больше кода и примеров.

Однако, я думаю, что если вы разработчики как на стороне сервера, так и на стороне клиента, использование двух разных языков и двух разных платформ может быть очень и очень обременительным. Вот почему я переехал в Script #. Все, что я делаю, это на С# и в Visual Studio, это позволяет мне быть более продуктивным. Если вы не пользуетесь преимуществами бэкэнд GWT, это действительно перебор.

Мне нравится думать о Script # как Javascript, написанном в спецификации С# 2.0 (который есть). Это полностью клиентский интерфейс, и любое сопоставление должно выполняться вручную (хотя автоматическое использование можно широко использовать). Это очень полно в поддержке Javascript и jQuery, на самом деле это настолько полно, что это меня сначала удивило. Казалось, что он делает меньше, чем это было.

точки анриунддейла действительны, особенно в отношении сообщества и открытости. Хотя это было немного шип в моей стороне, мне действительно очень нравится использовать Script #. Мне не нужно менять IDE, мне не нужно искать, как делать что-то на Java и т.д. JQuery имеет огромную библиотеку плагинов, и очень легко подключить их к Script #. Вы просто бросаете несколько объектов для представления свойств, аннотируете их как "импортированные" и возвращаете null. В вашем коде вы бросаете объект в качестве плагина, и ваш результат точно так же, как и в Javascript. Script # не заботится/не знает, как работает плагин.

Не позволяйте Script # отсутствие поддержки сообщества обмануть вас. Хотя это проблема, продукт очень зрелый и многофункциональный. Если ваши разработчики используют С#/VS, зачем им использовать отдельную программу для клиентов? Я обнаружил, что это был огромный успех.

В стороне, я стал намного лучше в Javascript с тех пор, как использовал С#. Многие проблемы с Javascript - это отсутствие языковых функций, которые вам действительно не нужны, но в больших проектах это единственный способ сделать его управляемым.

qaru.site

Кто-нибудь знаком с Jaxer? Я ищу плюсы и минусы Engine.JS

Я понимаю, что этот вопрос задавали раньше , но это был месяц без приличных ответов … Я смотрю на Jaxer Аптаны, и я считаю, что эта концепция очень интересна.

Вот краткий обзор для тех, кто не знаком с ним:

Jaxer, по их словам, «первый в мире настоящий сервер AJAX». Он основан на движке Mozilla, поэтому скрипты написаны с помощью javascript, и у вас есть полный доступ к DOM на стороне сервера.

Скрипты размещаются на ваших страницах с помощью тегов <script> и вы можете указать атрибут runat (ala ASP.NET), чтобы пометить сценарии для выполнения на клиенте, сервере, в обоих случаях или как «сервер-прокси», что делает доступными функции На клиенте, но они выполняются на сервере через AJAX. Это также означает, что вы можете использовать ваши любимые клиентские библиотеки (jQuery, Prototype) на сервере, а также на клиенте.

Он также может использоваться для обработки документов, созданных на другом языке (например, php, ruby), которые, как я полагаю, нецелесообразны, кроме как помочь в переходе существующих приложений на использование Jaxer.

  • Каковы плюсы и минусы?
  • Насколько зрелым / стабильным является API?
  • Насколько хороша производительность по сравнению с другими серверными препроцессорами html?
  • Кто-нибудь использовал Jaxer с другой технологией (php, pearl, ruby ​​и т. Д.) И каковы были ваши впечатления?

EDIT: Я опубликовал еще один вопрос о недостатке, который я обнаружил при игре с Jaxer: определение объектов при использовании Jaxer

  • Плюсы и минусы реализации javascript serveride?
  • Я не использовал Jaxer очень долго, но вот некоторые вещи, которые я нашел:

    Pros

    • Напишите интерфейс и бэкэнд в том же коде. Особенно приятно писать логику проверки.
    • «Бесшовная» связь AJAX с сервером – это как вызов функции JS.
    • Возможность использования JavaScript-фреймворков, таких как jQuery, для управления DOM.
    • Возможность создавать или манипулировать изображениями с помощью Canvas API.
    • Вы можете написать свой серверный JavaScript с помощью новых функций JavaScript 1.8, таких как дополнительные функции Array и getters / seters.

    Cons

    • Я обнаружил, что их API нестабилен (они переходили к 1.0, когда я пытался это сделать, чтобы это имело смысл), и документация была запутанной, отсутствовала или не соответствовала измененной функциональности. Я также обнаружил, что было очень сложно отладить мой код на стороне сервера Jaxer, и когда у меня возникли проблемы, сообщения об ошибках были не очень полезны.
    • Вы не получаете реального MVC или даже MVP (ASP.NET-стиль) разделения между вашей презентацией и вашей логикой.
    • Я лично не смог заставить E4X (xml в JavaScript) работать, что должно было стать большой ничьей.
    • Для построения целого приложения вокруг него не так много фреймворков. Вы начинаете с некоторых довольно основных строительных блоков.
    • На самом деле это не дает никакой помощи, поэтому забудьте все шаблоны или многоразовые компоненты, которые вы можете использовать в другом месте. Не то чтобы вы не могли воспроизвести это, но это сложнее, чем иметь его из коробки.

    В целом, я думаю, что Jaxer обещает стать постпроцессором перед другим веб-кадром. Было бы здорово использовать Jaxer, чтобы сложить все spiffy AJAX вещи поверх существующего сайта. Было бы намного проще сделать динамический сайт с логикой проверки правильности / манипуляции страницей, разделяемой между сервером и клиентом. Я не думаю, что хочу написать приложение, используя только Jaxer. Кроме того, он молод (и незрелый) – мне будет интересно посмотреть, где он заканчивается.

    Я столкнулся с этим набором тестов производительности .

    Похоже, что Jaxer работает лучше, чем Rails, но не так хорошо, как php …

    @BRH: Отличное понимание. Я бы повторил все «Плюсы» и «Минусы» 2, 4 и 5 и ваш окончательный обзор. Я как бы понимаю, что они не собирались вытеснять какой-либо рынок для восходящих инфраструктур … но если бы они могли это сделать и держать его как можно более жестким и понятным, я надеюсь, что они это сделают! Мне нравится, как они думают!

    PS Я не знаю, является ли это новым, но есть <jaxer:include который вводит фрагменты на страницу до выполнения сценария на стороне сервера, что может помочь в некоторых сценариях повторного использования кода. Мне может быть больше, чтобы открыть эти строки.

    Я считаю, что Jaxer настолько многообещающий, что здесь работает разработчик AJAX;) … хотя это означало бы, что я должен покончить с собой или использовать меньше PHP, моего первого языка. 🙂

    js.bilee.com