Учебники ASP

ГЛАВНАЯ АСП

Учебник по WP

Введение в веб-страницы Веб-страницы Razor Макет веб-страниц Папки веб-страниц Веб-страницы Глобальные Формы веб-страниц Объекты веб-страниц Файлы веб-страниц Базы данных веб-страниц Помощники веб-страниц Веб-страницы Графики веб-страниц Электронная почта веб-страниц Безопасность веб-страниц Публикация веб-страниц Примеры веб-страниц Классы веб-страниц

Бритва ASP.NET

Введение в бритву Синтаксис бритвы Переменные Razor C# Циклы Razor C# Логика Razor C# Переменные Razor VB Циклы Razor VB Логика Бритвы В.Б.

АСП Классик

Введение в ASP Синтаксис ASP ASP-переменные Процедуры ASP Условия ASP Зацикливание ASP ASP-формы Файлы cookie ASP ASP-сеанс ASP-приложение ASP #include ASP Global.asa АСП АЯКС Электронная почта ASP Примеры ASP

Справочник ASP

Функции ASP VB Ключевые слова ASP VB Ответ ASP ASP-запрос ASP-приложение ASP-сеанс ASP-сервер Ошибка ASP Файловая система ASP Текстовый поток ASP ASP-диск ASP-файл Папка ASP Словарь АСП ASP AdRotator ASP BrowserCap Связывание контента ASP Ротатор контента ASP Быстрая ссылка ASP

Учебник по ADO

Введение в ADO АДО Коннект Набор записей ADO Дисплей АДО ADO-запрос Сортировка ADO ADO Добавить Обновление ADO АДО Удалить Демонстрация ADO Ускорение ADO

Объекты АДО

Команда АДО ADO-соединение Ошибка ADO Поле ADO ADO-параметр Свойство АДО ADO-запись Набор записей ADO ADO-поток Типы данных ADO

АСП АЯКС

AJAX предназначен для обновления частей веб-страницы без перезагрузки всей страницы.


Что такое АЯКС?

AJAX = асинхронный JavaScript и XML.

AJAX — это метод создания быстрых и динамичных веб-страниц.

AJAX позволяет обновлять веб-страницы асинхронно, обмениваясь небольшими объемами данных с сервером за кулисами. Это означает, что можно обновлять части веб-страницы без перезагрузки всей страницы.

Классические веб-страницы (которые не используют AJAX) должны перезагружать всю страницу, если содержимое должно измениться.

Примеры приложений, использующих AJAX: вкладки Google Maps, Gmail, Youtube и Facebook.


Как работает АЯКС

АЯКС


AJAX основан на интернет-стандартах

AJAX основан на интернет-стандартах и ​​использует комбинацию:

  • Объект XMLHttpRequest (для асинхронного обмена данными с сервером)
  • JavaScript/DOM (для отображения/взаимодействия с информацией)
  • CSS (для стилизации данных)
  • XML (часто используется как формат для передачи данных)

Приложения AJAX не зависят от браузера и платформы!



Google предлагает

AJAX стал популярным в 2005 году благодаря Google Suggest.

Google Suggest использует AJAX для создания очень динамичного веб-интерфейса: когда вы начинаете вводить текст в поле поиска Google, JavaScript отправляет письма на сервер, и сервер возвращает список предложений.


Начните использовать AJAX сегодня

В нашем руководстве по ASP мы покажем, как AJAX может обновлять части веб-страницы без перезагрузки всей страницы. Сценарий сервера будет написан на ASP.

Если вы хотите узнать больше об AJAX, посетите наш учебник по AJAX .

Пример AJAX ASP

В следующем примере показано, как веб-страница может взаимодействовать с веб-сервером, пока пользователь вводит символы в поле ввода:

Пример

Start typing a name in the input field below:

First name:

Suggestions:



Объяснение примера

В приведенном выше примере, когда пользователь вводит символ в поле ввода, выполняется функция с именем «showHint()».

Функция запускается событием onkeyup.

Вот HTML-код:

Пример

<html>
<head>
<script>
function showHint(str) {
    if (str.length == 0) {
        document.getElementById("txtHint").innerHTML = "";
        return;
    } else {
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                document.getElementById("txtHint").innerHTML = this.responseText;
            }
        };
        xmlhttp.open("GET", "gethint.asp?q=" + str, true);
        xmlhttp.send();
    }
}
</script>
</head>
<body>

<p><b>Start typing a name in the input field below:</b></p>
<form>
First name: <input type="text" onkeyup="showHint(this.value)">
</form>
<p>Suggestions: <span id="txtHint"></span></p>
</body>
</html>

Объяснение кода:

Сначала проверьте, не пусто ли поле ввода (str.length == 0). Если это так, очистите содержимое заполнителя txtHint и выйдите из функции.

Однако, если поле ввода не пусто, сделайте следующее:

  • Создайте объект XMLHttpRequest
  • Создайте функцию, которая будет выполняться, когда ответ сервера будет готов
  • Отправьте запрос в файл ASP (gethint.asp) на сервере.
  • Обратите внимание, что добавлен параметр q gethint.asp?q="+str
  • Переменная str содержит содержимое поля ввода.

Файл ASP — «gethint.asp»

Файл ASP проверяет массив имен и возвращает соответствующие имена в браузер:

<%
response.expires=-1
dim a(30)
'Fill up array with names
a(1)="Anna"
a(2)="Brittany"
a(3)="Cinderella"
a(4)="Diana"
a(5)="Eva"
a(6)="Fiona"
a(7)="Gunda"
a(8)="Hege"
a(9)="Inga"
a(10)="Johanna"
a(11)="Kitty"
a(12)="Linda"
a(13)="Nina"
a(14)="Ophelia"
a(15)="Petunia"
a(16)="Amanda"
a(17)="Raquel"
a(18)="Cindy"
a(19)="Doris"
a(20)="Eve"
a(21)="Evita"
a(22)="Sunniva"
a(23)="Tove"
a(24)="Unni"
a(25)="Violet"
a(26)="Liza"
a(27)="Elizabeth"
a(28)="Ellen"
a(29)="Wenche"
a(30)="Vicky"

'get the q parameter from URL
q=ucase(request.querystring("q"))

'lookup all hints from array if length of q>0
if len(q)>0 then
  hint=""
  for i=1 to 30
    if q=ucase(mid(a(i),1,len(q))) then
      if hint="" then
        hint=a(i)
      else
        hint=hint & " , " & a(i)
      end if
    end if
  next
end if

'Output "no suggestion" if no hint were found
'or output the correct values
if hint="" then
  response.write("no suggestion")
else
  response.write(hint)
end if
%>

AJAX можно использовать для интерактивного взаимодействия с базой данных.


Пример базы данных AJAX

В следующем примере показано, как веб-страница может получать информацию из базы данных с помощью AJAX:

Пример


Customer info will be listed here...


Объяснение примера — HTML-страница

Когда пользователь выбирает клиента в раскрывающемся списке выше, выполняется функция под названием «showCustomer()». Функция запускается событием onchange:

<!DOCTYPE html>
<html>
<head>
<script>
function showCustomer(str)
{
if (str=="")
  {
  document.getElementById("txtHint").innerHTML="";
  return;
  }
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (this.readyState==4 && this.status==200)
    {
    document.getElementById("txtHint").innerHTML=this.responseText;
    }
  }
xmlhttp.open("GET","getcustomer.asp?q="+str,true);
xmlhttp.send();
}
</script>
</head
<body>

<form>
<select name="customers" onchange="showCustomer(this.value)">
<option value="">Select a customer:</option>
<option value="ALFKI">Alfreds Futterkiste</option>
<option value="NORTS ">North/South</option>
<option value="WOLZA">Wolski Zajazd</option>
</select>
</form>
<

<div id="txtHint">Customer info will be listed here...</div>

</body>
</html>

Объяснение исходного кода:

Если клиент не выбран (str.length==0), функция очищает содержимое заполнителя txtHint и выходит из функции.

Если клиент выбран, функция showCustomer() выполняет следующее:

  • Создайте объект XMLHttpRequest
  • Создайте функцию, которая будет выполняться, когда ответ сервера будет готов
  • Отправить запрос в файл на сервере
  • Обратите внимание, что к URL-адресу добавляется параметр (q) (с содержимым раскрывающегося списка).

Файл ASP

Страница на сервере, вызываемая приведенным выше JavaScript, представляет собой файл ASP с именем «getcustomer.asp».

Исходный код в «getcustomer.asp» выполняет запрос к базе данных и возвращает результат в таблице HTML:

<%
response.expires=-1
sql="SELECT * FROM CUSTOMERS WHERE CUSTOMERID="
sql=sql & "'" & request.querystring("q") & "'"

set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open(Server.Mappath("/datafolder/northwind.mdb"))
set rs=Server.CreateObject("ADODB.recordset")
rs.Open sql,conn

response.write("<table>")
do until rs.EOF
  for each x in rs.Fields
    response.write("<tr><td><b>" & x.name & "</b></td>")
    response.write("<td>" & x.value & "</td></tr>")
  next
  rs.MoveNext
loop
response.write("</table>")
%>