Проблемы с использованием Firebug для просмотра скрипта на странице ASP.NET с очень большим VIEWSTATE - PullRequest
1 голос
/ 02 ноября 2009

Я унаследовал приложение ASP.NET, которое создает страницы с огромными значениями представления. Поскольку я работал над этим, я предполагал, что смогу использовать Firebug для проверки вывода и установки точек останова в результирующем клиентском скрипте.

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

То, что я вижу в выводе, очень похоже на это:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD> --snipped-- </HEAD>
<body>
    <form name="..." method="post" action="..." id="...">
    <input 
       type="hidden" 
       name="__VIEWSTATE" 
       id="__VIEWSTATE"
       value="/V4dAUdVmVyc2lvbiAzLjAsIGJ1aWxkIDMxIChlbi1VUylkAgUPFgIfAGVkAgsPDxYCHwAFC1RpbSBCb29ybWFuZGQCDw8QDxYCHgtfIURhdGFC
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD> --snipped-- </HEAD>
<body>
    <form name="..." method="post" action="..." id="...">
    <input 
       type="hidden" 
       name="__VIEWSTATE" 
       id="__VIEWSTATE"
       value="/V4dAUdVmVyc2lvbiAzLjAsIGJ1aWxkIDMxIChlbi1VUylkAgUPFgIfAGVkAgsPDxYCHwAFC1RpbSBCb29ybWFuZGQCDw8QDxYCHgtfIURhdGFC
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD> --snipped-- </HEAD>
<body>
    <form name="..." method="post" action="..." id="...">
    <input 
       type="hidden" 
       name="__VIEWSTATE" 
       id="__VIEWSTATE"
       value="/V4dAUdVmVyc2lvbiAzLjAsIGJ1aWxkIDMxIChlbi1VUylkAgUPFgIfAGVkAgsPDxYCHwAFC1RpbSBCb29ybWFuZGQCDw8QDxYCHgtfIURhdGFC

Другими словами, Firebug проходит половину значения viewstate, затем начинает сверху, переводя все, начиная с объявления DOCTYPE, до того же места в viewstate.

Хотя я осознаю (и работаю над) тот факт, что существует проблема с тем, как это приложение использует viewstate, я удивлен обработкой вывода Firebug. У меня есть последние версии Firefox и Firebug. Могу ли я изменить настройку, чтобы вкладка скрипта отображалась правильно? У кого-нибудь еще были проблемы с Firebug и ASP.NET viewstate?

Ответы [ 2 ]

0 голосов
/ 02 ноября 2009

Хотя это не решает основную проблему ViewState, я реализовал следующий обходной путь на конкретной странице, где мне нужно использовать Firebug. Обратите внимание, что я не рекомендую SessionPageStatePersister в качестве окончательного решения (хранение этого огромного представления на сервере только устраняет проблему), но я решил поделиться решением, которое позволило мне двигаться вперед.

#if DEBUG
    // When debugging, it is useful to not have the large viewstate values 
    // output to the browser.
    protected override System.Web.UI.PageStatePersister PageStatePersister
    {
        get
        {
            return new SessionPageStatePersister(this);
        }
    }
#endif

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

0 голосов
/ 02 ноября 2009

Вы пробовали какие-либо другие инструменты отладки JavaScript?

Я знаю, что в Chrome и Safari встроены отладчики сценариев, или Venkman , плагин FireFox.

...