Пишет ли cookie очень медленно в JS? - PullRequest
9 голосов
/ 28 сентября 2010

Мне нужно сделать мой сайт быстрее на стороне клиента. Интересно, может ли чрезмерное использование cookie-файлов Javascript замедлить работу браузера? Он использует жесткий диск, который является самым медленным компонентом компьютера. Могут ли манипуляции с файлами cookie на сильно фрагментированном жестком диске заморозить браузер?

Проводит ли JS какие-либо оптимизации для записи / чтения файлов cookie (кэширование и т. Д.). Могу ли я использовать эти оптимизации для улучшения своего сайта?

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

Ответы [ 4 ]

11 голосов
/ 28 сентября 2010

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

Есть множество других оптимизаций, которые вы можете сделать, например:

  • Обслуживание файлов в виде сжатого содержимого
  • Гарантия того, что большая часть вашего сайта может кэшироваться
  • Использование CSS-спрайтов и объединение файлов javascript + css для уменьшения HTTP-запросов (также уменьшит нагрузку на ваш сервер)
  • Сокращениеваш javascript, css и html

Все это проверенные методы сокращения времени загрузки страницы.

Для получения дополнительной информации о том, как ускорить загрузку вашей страницы, получите YSlow!плагин для firefox / firebug http://developer.yahoo.com/yslow/

0 голосов
/ 28 сентября 2010

Сама манипуляция с cookie не будет интенсивной. Однако файлы cookie будут помечены рядом с некоторыми или всеми вашими HTTP-запросами (как вверх, так и вниз) в зависимости от пути и настроек домена ваших файлов cookie. Если у вас есть килобайт cookie и вы делаете 10 запросов на страницу, вы существенно увеличиваете полезную нагрузку запросов и ответов на 10 КБ каждый.

Подробнее см. ServeFromCookielessDomain .

0 голосов
/ 28 сентября 2010

куки-файлы являются частью заголовков запросов и ответов, поэтому их загрузка означает загрузку каждого запроса и ответа.Во-вторых, вы ограничены 50 файлами cookie на домен и 4k на файл cookie.В-третьих, многие пользователи абсолютно напуганы файлами cookie и склонны удалять их, даже если они безвредны.

По этим трем причинам веб-разработчики очень редко используют их, если в этом нет абсолютной необходимости (то есть токены сеансов).Поскольку веб-разработчики очень редко используют их, вокруг них мало «лучших практик», и они, как правило, не привлекают к себе большого внимания.

Я бы хотел убедиться, что проблема связана именно с файлами cookie, прежде чем обращаться к ним.Это.Реализация зависит от браузера, поэтому вы, вероятно, увидите очень разные результаты этих тестов в зависимости от того, на каком браузере вы его пробовали.

0 голосов
/ 28 сентября 2010

+ 1 за хороший вопрос, хотя и со страшными последствиями.

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

Почему это страшно?

  1. Куки могут иметь ограничения по размеру / количеству: http://support.microsoft.com/kb/306070 и http://en.wikipedia.org/wiki/HTTP_cookie

  2. К файлам cookie можно манипулировать, поэтому они не защищены(если вы строго не шифруете значения в них, что, конечно, влияет на производительность и все еще является плохой идеей).

  3. Файлы cookie иногда отключаются.

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

...