2009-06-02 2 views
0

jQuery и аналогичные библиотеки предоставляют множество полезных API для обхода и манипулирования DOM. Если ваш сайт имеет большое количество повторных посетителей, их использование легко оправдано, так как кеширование будет компенсировать любую стоимость полосы пропускания для конечного пользователя.Модульная библиотека Javascript с функциональностью, подобной jQuery

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

Существуют ли библиотеки, которые обеспечивают этот стиль взаимодействия с DOM, позволяя вам выбирать компоненты, относящиеся к вашей странице.

Например,

jQuery('#myId').addClass('error'); 

и многие другие интерфейсы в JQuery могут быть воспроизведены в несколько строк кода, что позволяет избежать ~ 50kb загрузок.

Вопрос в том, существует ли библиотека, которая содержит эти функции, мало зависящие от других аспектов библиотеки, или мне нужно будет создать их самостоятельно по мере необходимости?

Существуют ли механизмы/инструменты для разбивки существующих библиотек, таких как jQuery, на их минимальные компоненты?

ответ

4

Как обсуждалось, here, если вы используете Google как хост библиотек, пользователь, вероятно, уже имеет кеширование, прежде чем они когда-либо попадут на ваш сайт.

This page показывает, какие библиотеки поддерживаются. В настоящее время:

  • JQuery
  • JQuery UI
  • Прототип
  • Script.aculo.us
  • MooTools
  • Dojo
  • SWFObject Новинка!
  • Yahoo! Упрощенный расчет! Библиотека пользовательского интерфейса (YUI) Новое!

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

Неплохая идея. Было бы неплохо, если бы вы могли создать пользовательскую версию jQuery. Мне особенно понравился iPhone Mobile Safari и Adobe AIR, который удалил все материалы, не связанные с веб-сайтами.

+0

Было рассмотрено использование размещенной в Google версии. Мы не можем гарантировать, что пользователь будет кэшировать элемент, а разумная часть пользовательской базы не связана с широкополосными соединениями. Пользовательский опыт имеет первостепенное значение. Сайт также предназначен для безопасного контента, поэтому внешний хостинг не является полностью желательным. Я не являюсь поклонником моего собственного, это не основная компетенция бизнеса. В конечном счете, я просто хотел бы найти способ или иметь инструмент, который позволяет выбирать нужные части jQuery и т. Д. – bradhouse

+0

+1 хорошая идея для извлечения ненужных материалов! – alex

+0

Я слышал, что jQuery работает над мобильной версией, я предполагаю, что без всякого мусора, необходимого для поддержки самых забавных настольных браузеров. – Nosredna

0

Отъезд Sly. Только 3 КБ.

+0

Это просто механизм выбора? Полагаю, вы не можете манипулировать им. Sizzle, Peppy и другие аналогичны – Nosredna

+0

Это правильно. – RedFilter

+0

Неплохое начало. При отключенном двигателе селектора манипуляция не должна быть слишком сложной. – Nosredna

3

Производственная версия jQuery - 19k, такая же, как довольно маленькое изображение. В моей книге не суровое наказание.

Редактировать: ..и стоит каждый k, тоже.

+1

Просто, чтобы быть ясным, это 19k * после * gzip (который должен применяться к большинству переводов). Минимальная версия 1.3.2 на самом деле составляет 56 тыс. Поскольку большинство других библиотек не рекламируют это число, сравнение сравнений с его размером gzipped может привести к путанице. –

1

MooTools позволяет загружать только те части, которые вы хотите. Поэтому, если все, что вам нужно, достаточно для запросов JSON AJAX, у вас это есть.

http://mootools.net/core

+0

Да, это довольно хорошо. Вы находитесь в 30k, когда будете тянуть стиль элемента и элемента. Я думаю, если вы не потянете больше, это приличная экономия на jQuery. – Nosredna

+0

И, конечно, gzipping делает из некоторых довольно маленьких файлов. –

0

К сожалению, ребята, я как-то потерял страницу, в которой одна была с просьбой о JS решения конфликтов библиотек.

У меня была такая же проблема, но теперь я решил ее после игры с некоторыми сценариями JQuery. Я знаю, что это немного больно в *, но давайте сделаем это шаг за шагом.

Прежде всего позвольте мне сказать вам, что в моем проекте я использую две разные библиотеки. Я использую Lightwindow и JQuery. Я не мог заставить обе библиотеки работать правильно, но я придумал следующий скрипт. Вы должны использовать этот скрипт в каждой функции, предназначенной для использования функций JQuery:

// В этой строке говорится, что знак доллара $ принадлежит библиотеке JQuery.

JQuery (документ) .ready (функция ($) { // Ваш исходный код здесь идет

.});

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

 function popups(message, heading, actionlink, linkName) { 

// Это линия, которая сказать остальную часть исходного кода // распознавать функции JQuery.

  jQuery(document).ready(function($) { 

      // get the screen height and width  
      var maskHeight = $(document).height();  
      var maskWidth = $(window).width(); 


      // assign values to the overlay and dialog box 
      $('#dialog-overlay').css({height:maskHeight, width:maskWidth}).show(); 
      $('#dialog-box1').show(); 


      // display the message 
      $('#dialog-message-row').html(message); 
      $('#dialog-message-heading').html(heading); 
      $('#dialog-message-actionlink').html("<a onclick=function('x') class='button' id='delete'>"+linkName+"</a>"); 

      });//CLOSE JQuery translator 
     }