Рекомендуется: управление ASP 6 очень классические коды для базы данных XML № 1-Create A Data Data.xml <? Xml version = 1.0?> <cistrlies> <comport> <name> <mank> <name> caca </name> <qq> 1
7.2.4 Ошибка сценария клиента
До сих пор мы узнали об ошибках от ASP. Тем не менее, ASP также часто используется для создания веб -страниц, содержащих клиентские сценарии. Если элемент <script>, содержащий клиент -код, не установлен на атрибут Runat = сервер, ASP не будет рассматривать сервер и передавать информацию веб -страницы клиенту без изменения его.
Поэтому, если открыта веб -страница ASP и отображается диалоговое окно ошибки браузера, вы не должны искать ошибки в коде программы ASP на стороне сервера. Браузер не может увидеть код программы ASP, поэтому он не может распознать никаких ошибок. Если в клиенте появляется диалоговое окно, в клиентском коде должна быть ошибка.
1. Синтаксическая ошибка
Если в коде клиентской программы есть синтаксическая ошибка на веб -странице, браузер будет испытывать соответствующую ошибку, когда сценарий загружается на клиент. Хотя контент на веб -странице все еще может быть загружен нормально (если динамически загружается этим кодом клиентского скрипта), веб -страница прекращает выполнять выполнение. Пользователь увидит диалоговое окно, содержащее данные об ошибке, или сообщение о состоянии, указывающее, что веб -страница содержит ошибку.
Современные браузеры, как правило, скрывают детали ошибок веб -сценария и отображают только небольшую значок ошибки в строке состояния. В IE 4.0 и IE 5.0 диалоговое окно «Обычная ошибка» можно активировать через расширенную страницу диалогового окна «Параметры Интернета», как показано на рисунке 7-14:
Рисунок 7-14 Экран настройки расширенной страницы
Обработка ошибок клиента в коде программы сценариев аналогична таковым на стороне сервера и обычно проще, потому что веб-страницы часто можно загружать непосредственно из каталога сервера путем дважды щелкнув. Как правило, нет необходимости получать веб -страницы через веб -серверы и HTTP, чтобы наблюдать за результатами в браузере. Единственное отличие состоит в том, что некоторые взаимодействия сервера осуществляются клиентскими сценариями, такими как привязка данных или динамическая загрузка с использованием RDS.
2. Среда выполнения или семантическая ошибка
В клиентских сценариях вы можете часто сталкиваться с ошибками синтаксиса, а также времени выполнения или семантических ошибок. На самом деле, это явление очень распространено на стороне клиента. Поскольку клиент не может контролировать среду скрипта, такую как на стороне сервера, не уверен, что пользователь работает на своей машине. Фактически, сервер может получить общую ситуацию только от некоторых компонентов, таких как возможности браузера.
Следовательно, программы сценариев, которые используют клиентские объекты или специальные версии языков и свойств сценариев, вероятно, не работают должным образом. Тем не менее, обработка ошибок клиента похожа на ошибки в обработке сервера.
3. Код клиентской программы, созданный на сервере
Когда возникает ошибка, в качестве специального исключения из правил страницы ошибок ASP (о том, где происходит ошибка), соответствующее правилам страницы ошибки ASP, состоит в том, чтобы использовать код программы ASP для динамического создания кода клиентской программы на сервере. Например, вы можете выполнить операции оценки в ASP, а затем передать данные в код сценария, работающий на клиенте. Самый простой способ - вставить данные в код сценария в качестве переменной:
<%
'Получите имя нашего сервера из коллекции ServerVariables
strservernameinasp = request.servervariables (server_name)
%>
<Script language = jscript runat = client>
<!- Скрыть код из более старых браузеров
var strservername = < % = strservernameinasp %>;
…
ALERT ('имя сервера:' strservername);
…
// прекратить скрывать код
->
</Script>
На клиенте, после процесса ASP на этой странице, вы получите:
<Script language = jscript runat = client>
<!- Скрыть код из более старых браузеров
var strservername = wroxbox;
…
ALERT ('имя сервера:' strservername);
…
// прекратить скрывать код
->
</Script>
Атрибут runat = клиента можно игнорировать, но добавление этого элемента может сделать его более четким при просмотре веб -страницы ASP, где работает код.
Таким образом, если вы хотите добавить данные из базы данных на стороне сервера в массив клиента в определенном месте, вы можете использовать следующую программу для ее реализации:
<Script language = jscript runat = client>
<!- Скрыть код из более старых браузеров
var Arrbooks = новый массив (10) // Наибольший доступный индекс будет
<% 'начало обработки ASP
intindex = 0
Делать, пока {не в конце некоторого набора записей}
strtitle = {получить заголовок из записи базы данных}
Response.write arsbooks [& cint (intindex) &] = '_
& strtitle & '; & vbcrlf
intindex = intindex 1
{перейти к следующей записи в базе данных}
Петля
…
Сделайте что -нибудь здесь, на клиенте с множеством названий книг
…
// прекратить скрывать код
->
</Script>
Этот клиент-код, сгенерированный кодом программы ASP на стороне сервера, создает множество названий книг, когда клиент работает. Ошибка сценария клиента, которая генерируется одновременно в диалоговом окне ошибок браузера. Причина ошибки заключается в том, что массивы, названные после арестов, создаются кодом JavaScript при запуске на клиенте и могут принимать только 9 названий книг; В то время как код на стороне сервера, скорее всего, может генерировать более 9 названий книг, что определяется количеством записей в базе данных исходной основы. Это эквивалентно следующему клиентскому коду:
<Script language = jscript runat = client>
<!- Скрыть код из более старых браузеров
var Arrbooks = новый массив (10) // Наибольший доступный индекс будет
Arsbooks [0] = 'Instant JavaScript';
Arsbooks [1] = 'Профессиональное программирование ASP 3.0;
Arsbooks [2] = 'ADO 2.5 Ссылка программистов';
…
и т. д.
…
Arsbooks [9] = 'ASP -методы для веб -мастеров';
Arsbooks [10] = 'Ссылка на программисты ASP'; // <- здесь возникает ошибка на стороне клиента
Arsbooks [11] = 'ADSI CDO программирование';
Arsbooks [12] = 'Профессиональные MTS и MSMQ программирование';
…
Сделайте что -нибудь здесь, на клиенте с множеством названий книг
…
// прекратить скрывать код
->
</Script>
Эта страница может работать только после коррекции. Его можно увеличить путем увеличения размера массива или управления количеством записей из базы данных.
7.3 Предотвратить ошибки
Я видел несколько различных типов ошибок, которые могут возникнуть выше, и я чувствую, что ищу ошибки. Вот некоторые соображения о том, как избежать введения ошибок в программы. Хотя не гарантируется, что письменная программа не содержит ошибок, многие методы, обобщенные здесь, обобщены.
Поделиться: как преобразовать динамические веб -страницы ASP в HTM Static Pages Некоторое время назад страница ASP была очень медленной, чтобы выполнить, с большим количеством посетителей, и она не часто модифицировалась, поэтому было слишком ленивым, чтобы напрямую превращаться в статичную. Каждый раз, когда мне приходилось загружать его с сервера, чтобы изменить его, мне приходилось найти способ преобразовать страницу ASP в статическую страницу HTM. Я видел это раньше