Pull to refresh
3
gregory_777@gregory_777

User

Send message
Табло — это очень крутая идея!
Спасибо. Забульбенил манифесты для наших проектов, смотрится круто.
			init: function(selector, context, undefined) {
				if (!selector) return this;
				if(typeof(selector) === 'string') {
					this[0] = document.getElementById(selector);
					this.selector = selector;
					this.context = context;
					return this;
				} else {
					this.context = this[0] = selector;
					return this;
				}
			}


Вот как-то так. Хорошо бы это отразить в статье, а то чайники вроде меня кипят :)
И то правда…
Ну вот что у меня получилось:

(function(window, undefined) {
	var document = window.document;
	var jQuery = (function() {
		var jQuery = function(selector, context, undefined) {
			return new jQuery.fn.init(selector, context);
		};

		jQuery.fn = jQuery.prototype = {

			constructor: jQuery,

			init: function(selector, context, undefined) {
				if (!selector) return this;
				return typeof(selector) === 'string' ?
					document.getElementById(selector) : selector; 
			}
		};

		jQuery.fn.init.prototype = jQuery.fn;
		return jQuery;
	})();
	window.jQuery = window.$ = jQuery;
})(window);

// Plugin

(function($) {
	$.fn.foo = function() {
		console.log('bar');
	}
})(jQuery);

// <div id="qwe">asd</div>
$('qwe').foo();


В итоге мне сообщают, что функции foo нету. Хотя $('qwe') — корректный HTMLDivElement со всеми пирогами.
То есть добавление функции foo() в $.fn ничего не расширяет…

Или на меня напал адский тупак?
Функция init возвращает объект согласно селектору. Каким образом функция-плагин попадает в этот объект при её добавлении к прототипу самого jQuery? Допустим я пишу $.fn.foo = function(){ // some code }, как получается так, что когда я вызываю $('element').foo(), она запускается?

Я взял куски кода из Вашей статьи. Они прекрасно работают для встроенных фукнций объекта. К примеру, если element — это div, то спокойно можно получить $('element').innerHTML. Но про «плугин» мне говорят, что «Uncaught TypeError: Object #HTMLDivElement has no method 'foo'», и привет.

Чего я не понял?
Предпоагается их отдавать с другого домена.
Ну так я для этого всё и затеял. Это в общем-то те же спрайты, только без предобработки графики.
Нет, в данном случае мы получаем сразу все картинки одним куском.
Вот честно говоря не знаю, проще ли это. Насколько я понимаю, манипуляции с картинками (склеивание) более затратны, чем сериализация…

Спрайты хороши для всяких графических буллитов, стрелочек, штучек и пимпочек, хотя я в последнее время предпочитаю опять же использоваться data:image url.
Что-то я под утро плохо соображаю. Почему 100 картинок на 10 мест?

У нас есть лента новостей. Скажем из 20 блоков. Каждый блок это картика + текст со ссылкой. Страница запрашивает 20 картинок соответственно. Все 20 картинок собираются в одну JSON-стороку, которая и кешируется. Следующая страница — ещё 20 картинок ещё одним куском.

При изменении (при добавлении новости) страницы JSON в кеше пересобирается бэкендом принудительно.
К вам пришло разом, скажем, 100 человек. 100 одновременных PHP-процессов (дай бог, чтобы вы при этом не уперлись в лимит) из базы (нахрена здесь база?) собирают base64 в один огромный JSON-массив.


Ну с этим-то проблем как раз нет — можно кешировать выдачу сервлета в memcached и отдавать всё это через nginx например.
Это просто пример, я отлично понимаю, что так делать нельзя.
1) Ой!

2) Потому что в табличной вёрстке рендерер ждёт окончания загрузки всех вложеных таблиц поэтому она просто дольше отрисовывается, «размазывая» запросы во времени. Коряво написал просто.
А если пользователей 100500?
При 20-30 картнках общим объёмом 50-60кБ — субъективно быстрее. Объективно измерить сложно, т.к. загрузка картинок начинается после окочания рендеринга страницы браузером.
Собрал на ProtoShield, работает.
Изучать ОС Виста в аспирантуре — это, конечно, само по себе много гоорит о нашей системе обрзования.
Вот презервативы!!!
Слов нет никаких.

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity