Загрузка страницы занимает слишком много времени в Safari Mac - PullRequest
1 голос
/ 21 февраля 2011

У нас есть веб-приложение + веб-сайт, у которого есть проблемы с производительностью.Я сделал много улучшений, уменьшив время загрузки с 10-15 до 2 секунд (согласно Yslow).
Он все еще слишком большой (около 600 КБ для всего), но это огромный шаг вперед, и этохватит ... если на Safari / Mac (конфигурация нашего клиента) сайту не понадобилось около 2 минут (!) для загрузки.
Клиенты нашего клиента также часто бывают на Safari / Mac, поэтому это большая проблема(мы не можем просто сказать «смените браузер», например).

Я провел ряд тестов:

  • Safari Mac: более 2 минут для загрузки 1-говремя обновления более 10 секунд
  • Firefox Mac: достаточно быстро
  • Safari Windows: достаточно быстро
  • Firefox Windows: достаточно быстро
  • IE Windows:достаточно быстро

Есть идеи, почему этот конкретный сайт так долго загружается в этом браузере?Я понятия не имею, как измерить производительность в Safari: слишком ли велика JS, слишком большой HTML ...?
Сайт: http://www.syntec -recrutement.org /

Спасибо

1 Ответ

1 голос
/ 04 августа 2011

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

Оказалось, что это размер VIEWSTATE, который вызывал проблему.

У меня много бизнес-данных, которые содержатся в комбинациях и древовидных представлениях, и по умолчанию состояние просмотра было включено для этих присосок, и их общая сумма превышала 250 КБ! По какой-то причине в 64-разрядной системе Windows 7 это не вызывало проблемы (я тестировал в IE9, Chrome 13, Firefox 5, Safari 5), но в Mac OS X 10.6 страница загружалась очень медленно во всех браузерах Я тестировал (Safari 5, Firefox 5, Chrome 13). После того, как я уменьшил размер viewstate, все работало отлично, и время загрузки на стороне клиента было одинаково быстрым как в Windows, так и в OS X.

Так что, если у кого-то возникнет эта проблема, я бы посоветовал взглянуть на источник вашей страницы после того, как страница отобразится, и посмотреть, не слишком ли велико состояние просмотра. Если это так, попробуйте уменьшить размер вашего viewstate.

Один простой способ сделать это (ASP.NET 2.0+) - сохранить состояние представления в состоянии сеанса на сервере (что должно быть хорошо, если в вашем приложении нет кучи пользователей, а на сервере достаточно оперативной памяти). и состояние сеанса включено и т. д.). Вы можете легко сделать это, добавив в файл кода вашей страницы следующее:

PageStatePersister _pers;

protected override PageStatePersister PageStatePersister   
{   
    get
    {
        if (_pers == null)
        {
            _pers = new SessionPageStatePersister(this);
        }
        return _pers;
    }
}

Для получения дополнительной информации об этой технике проверьте http://msdn.microsoft.com/en-us/library/system.web.ui.pagestatepersister.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...