Вы можете просто попросить его .index()
положение (относительно его братьев и сестер).
$(this).index(); // returns a zero based index position
За последний год мне пришлось быстро ответить на этот вопрос для проекта, над которым работает моя компания, и я нашел эти ресурсы чрезвычайно полезными: Highscalability Тодда Хоффа .com ; Масштабируемые Интернет-архитектуры , Тео Шлосснагл; и Создание масштабируемых веб-сайтов , Кэл Хендерсон. Highscalability.com, в частности, порекомендует вам множество хороших презентаций, руководств, книг и статей и станет отличным местом для начала. Все советы практические и основаны на опыте таких сайтов, как Flickr, Twitter и Google.
Кстати, масштабируемость - это не производительность. Идеально масштабируемая система - это система с фиксированными предельными затратами на добавление дополнительных пользователей или емкости.
Это хорошее чтение о livejournal и о том, как они со временем масштабировали свое приложение.
danga.com/words/2004_mysqlcon/mysql-slides.pdf [PDF]
Возможно, это не то, что вы ищете, но это один из лучших обзоров масштабирования «Это то, что мы сделали и почему».
Я склонен думать, что масштабируемость тесно связана с ремонтопригодностью. И, кажется, часто упускается из виду, что люди тратят очень короткое время на разработку приложений, а остальное время на поддержание его.
Кроме того, масштабирование почти наверняка связано с данными (который более гибок, чем код - поэтому вы хотите, чтобы его было все больше и больше), поэтому стоимость доступа к хранилищу должна оставаться в пределах от O (1)
до O (n)
.
Для меня идеально масштабируемое приложение - это приложение, которое я мог бы скопировать из одной среды в другую (аналогичную), настроить несколько значений и запустить ее, чтобы расширить область выполнения всего приложения.
Здесь уже есть несколько отличных ответов. В некоторых книгах и ссылках вы найдете несколько общих шаблонов мышления.
Пишите как можно меньше кода
Используйте код как можно чаще
Не переусердствуйте и не абстрагируйте свой дизайн
Разбейте вещи на модульные области, которые могут работать в отдельных или нескольких системах. Тяжелая обработка должна быть предоставлена отдельной системе.
Прежде, чем вы начнете изучать технику, вы должны знать область применения как следует. Что ожидает заказчик / бизнес-подразделение с точки зрения производительности и каковы критические области неудач? У Скотта Хансельмана был отличный подкаст по этой теме.
Некоторые из интересных моментов: не используйте кеширование, если оно вам не нужно; обслуживание файлов происходит быстрее, чем сборка фрагментов из базы данных; знать, как управлять временем просмотра сервера; знайте, какими будут ваши пики.
Опять же, сначала узнайте объем использования, чтобы узнать, нужно ли вам масштабировать.
Для этого я бы предложил эту книгу:
Хотя это в основном книга по PHP, идеи одинаковы для любого веб-стека.
Это именно то, что вам нужно! Руководство по архитектуре приложений было создано командой Microsoft Patterns and Practices в помощь архитекторам ...
Это хорошее введение в тему: На IBM developerWorks есть несколько интересных руководств по использованию архитектурных шаблонов для масштабируемых приложений: здесь и здесь .
Что бы вы ни делали, вы не можете спроектировать систему прямо с стать масштабируемым для всех ваших нужд. Часто после запуска вашей системы узкие места вы обнаруживаете там, где их меньше всего ожидаете (например, пропускная способность локальной сети). В любом случае, мой совет - это тоже highscalability.com :)