Лучшие практики для управления и развертывания больших приложений JavaScript

Ориентационный ученик, который является новичком для Java и / или вложенных классов

Вложенные классы могут быть либо: 1. Статические вложенные классы. 2. Нестатические вложенные классы. (также известный как Внутренние классы) => Пожалуйста, запомните это

1.Интерные классы Пример:

class OuterClass  {
/*  some code here...*/
     class InnerClass  {  }
/*  some code here...*/
}

Внутренние классы - это подмножества вложенных классов:

    Внутренний класс
  • - это определенный тип вложенных классов
  • . Внутренние классы - это подмножества вложенных классов
  • . Вы можете сказать, что внутренний класс также является вложенным классом, но вы не можете сказать, что вложенный класс также является внутренним классом .

Специальность класса Inner:

  • экземпляр внутреннего класса имеет доступ ко всем членам внешнего класса, даже к тем, которые отмечены как «частные "

2.Static Вложенные классы: Пример:

class EnclosingClass {
  static class Nested {
    void someMethod() { System.out.println("hello SO"); }
  }
}

Случай 1: Создание статического вложенного класса из не закрывающего класса

class NonEnclosingClass {

  public static void main(String[] args) {
    /*instantiate the Nested class that is a static
      member of the EnclosingClass class:
    */

    EnclosingClass.Nested n = new EnclosingClass.Nested(); 
    n.someMethod();  //prints out "hello"
  }
}

Случай 2: Создание статического вложенного класса из класса-оболочки

class EnclosingClass {

  static class Nested {
    void anotherMethod() { System.out.println("hi again"); } 
  }

  public static void main(String[] args) {
    //access enclosed class:

    Nested n = new Nested(); 
    n.anotherMethod();  //prints out "hi again"
  }

}

Специальность статических классов:

  • Статический внутренний класс будет иметь доступ только к статические члены внешнего класса и не имеют доступа к нестационарным элементам.

Заключение: Вопрос: В чем основное отличие между внутренним классом и статический вложенный класс в Java? Ответ: просто рассмотрите особенности каждого класса, упомянутого выше.

27
задан Peter Mortensen 31 January 2011 в 01:44
поделиться

7 ответов

Подход, что я нашел работы для меня, имеет отдельные файлы JS для каждого класса (как Вы были бы в Java, C# и других). Кроме того, можно сгруппировать JS в функциональные области приложения, если это легче для Вас перейти.

при помещении всех файлов JS в один каталог Вы можете иметь свою среду серверной стороны (PHP, например) цикл через каждый файл в том каталоге и произвести <script src='/path/to/js/$file.js' type='text/javascript'> в некотором заголовочном файле, который включен всеми Вашими страницами UI. Вы найдете эту автозагрузку особенно удобной, если Вы регулярно создадите и удалите файлы JS.

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

11
ответ дан Steve M 28 November 2019 в 05:37
поделиться

Кроме того, я предлагаю, чтобы Вы использовали Google библиотеки API Ajax, для загрузки внешних библиотек.

Это - инструмент разработчика Google, которые связывают библиотеки JavaScript крупных фирм и облегчают развертывать, обновлять и делать их легче, всегда используя сжатые версии.

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

Использование это этот путь:

google.load("jquery", "1.2.3");
google.load("jqueryui", "1.5.2");
google.load("prototype", "1.6");
google.load("scriptaculous", "1.8.1");
google.load("mootools", "1.11");
google.load("dojo", "1.1.1");
8
ответ дан paulgreg 28 November 2019 в 05:37
поделиться

Существует превосходная статья о Витамине Cal Henderson известности Flickr о том, как они оптимизируют предоставление своего CSS и JavaScript: http://www.iamcal.com/serving-javascript-fast/

5
ответ дан Ace 28 November 2019 в 05:37
поделиться

Просто sidenode - Steve уже указал, необходимо действительно "уменьшить" файлы JS. В JS на самом деле имеют значение пробелы. Если у Вас есть тысяча строк JS, и Вы разделяете только необязательные новые строки, которые Вы уже сохранили о 1K. Я думаю, что Вы понимаете.

существуют инструменты для этого задания. И Вы никогда не должны изменять "уменьшенный"/stripped/obfuscated JS вручную! Никогда!

3
ответ дан Mo. 28 November 2019 в 05:37
поделиться

В наших больших приложениях JavaScript мы пишем весь наш код в маленьких отдельных файлах - один файл в 'классе' или функциональной группе, с помощью своего рода пространства имен/структуры каталогов. Мы тогда имеем:

  • шаг времени компиляции А, который берет весь наш код и уменьшает его (использование варианта JSMin) для сокращения размера загрузки
  • шаг времени компиляции А, который посещает уроки, которые всегда или почти всегда необходимы и связывают их в большой пакет для сокращения распространений в прямом и обратном направлениях до сервера
  • А 'classloader', который загружает остающиеся классы во времени выполнения по требованию.
3
ответ дан Kieron 28 November 2019 в 05:37
поделиться

Для пользы эффективности сервера, лучше комбинировать весь Ваш JavaScript в один уменьшенный файл.

Определяют порядок, в котором требуется код, и затем поместите уменьшенный код в порядок, это требуется в единственном файле.

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

я рекомендовал бы продолжить разделение файлов для разработки и затем создал бы сценарий сборки для комбинирования/компилирования всего.

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

2
ответ дан Dan Herbert 28 November 2019 в 05:37
поделиться

Считайте код других (хороших) приложений JavaScript и посмотрите, как они обрабатывают вещи. Но я начинаю с файлом в классе. Но однажды его готовое к производству, я объединил бы файлы в один большой файл и уменьшил бы.

единственная причина, я не объединил бы файлы, то, если мне не были нужны все файлы на всех страницах.

1
ответ дан gregh 28 November 2019 в 05:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: