国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

AJAX、AJAX實例及AJAX源代碼(asp)

2019-11-18 17:04:37
字體:
來源:轉載
供稿:網友

  Ajax介紹

  AJAX 關鍵詞:
  javaScript腳本和可擴展標記語言(xml)
  WEB瀏覽器技術
  開放式WEB標準
  瀏覽器以及獨立平臺
  更好更快的網絡應用程序
  XML以及HTTP請求

  AJAX = 異步Javascript和可擴展標記語言
  AJAX是一種運用JavaScript和可擴展標記語言(XML),在網絡瀏覽器和服務器之間傳送或接受數據的技術。

  AJAX是一種瀏覽器技術
  AJAX是一種運用于瀏覽器中的技術。在瀏覽器和服務器之間,它使用異步數據進行轉換,并允許網頁向服務器索取少量信息而非整個網頁。
  這項技術標志著網絡應用程序的微小化、迅捷化以及便捷化。
  AJAX是一種不需依靠服務器軟件而獨立運做的瀏覽器技術。

  AJAX是基于公共標準的
  AJAX基于以下一些公共標準:
  XML 可擴展標記語言
  HTML 超文本標記語言
  CSS 層疊樣式表
  運用于ALAX的公共標準被很好的定義并且得到一些主要的常用瀏覽器支持。ALAX應用程序是獨立的瀏覽器和平臺(交互平臺,交互瀏覽器技術)。

  AJAX事關更好的網絡應用程序
  網絡應用程序比單機應用程序有更多的好處,它能符合更多用戶的需求,更易安裝且方便支持和擴展。
  然而,網絡應用程序并非總是像單機應用程序一樣好使喚。
  而運用AJAX,網絡應用程序將變地更實用(更小、更快、更易于使用)。

  今天就開始使用AJAX吧!
  無需學習新的知識。
  AJAX是基于公共標準的。這些標準已經被大多數開發人員使用多年。
  大多數現存的網絡應用程序可以用AJAX進行重新編寫以取代傳統的超文本標記語言方式。

  AJAX使用可擴展語言和HTTP請求
  傳統的網絡應用程序會將輸入的信息提交給服務器(使用HTML表單)。在服務器通過代碼后,將會把一個全新的完整的頁面傳送給用戶。
  由于用戶每次提交輸入信息的時候服務器都將傳回一個新的頁面,傳統的網絡應用程序通常運行緩慢且使用不便。
  使用AJAX,網頁應用程序能不經重新下載整個網頁就發送并重新獲得數據。這是通過發送HTTP請求和使用JS對網頁進行部分修改來實現的。
  聯系服務器的較好的方式是發送像可擴展標記語言這樣的數據(其他的方法也可以采用)。
  你將在這篇引論的下一章節更多地了解到這一切是如何做到的。


  AJAX實例

  AJAX可以用來創建更多交互式的網絡應用程序。

  AJAX 實例
  在以下的AJAX范例中,我們將了解到當用戶以網頁格式輸入數據時一個網頁是如何與網絡服務器連接的。

  在下面的框中輸入姓名 *實際操作請前往W3Schools
First Name: 
Suggestions:

  實例解析-超文本標記語言模式
  以上的范例所含超文本標記語言代碼如下:
<form>
First Name:
<input type="text" id="txt1"
onkeyup="showHint(this.value)">

</form><p>Suggestions: <span id="txtHint"></span></p>
  就如你看到的,它只是一個普通的表單,里面有一稱為"txt1"的輸入框
  下一段包括了一個稱做“txtHint”的SPAN。這個SPAN是用來存儲從服務器重新獲得的信息的。
  當用戶輸入數據,名為“showHint()”的函數將被執行。這個函數的執行是由“onkeyup”事件觸發的。換種說法:每當用戶在txt1區域內觸動鍵盤按鈕,showHint的功能就被執行。

  實例解析- showHint()函數
  showHint()函數是一種位于HTML頂端的簡單的JS函數。
  函數包含以下代碼:
function showHint(str)
{
if (str.length > 0)
{
var url="gethint.asp?sid="+Math.random()+"&q="+str
xmlhttp=GetXmlHttpObject(stateChanged)
xmlHttp.open("GET", url , true)
xmlHttp.send(null)
}
else
{
document.getElementById("txtHint").innerHTML=""
}
}
  每當有字符被鍵入輸入區內就會執行這個函數
  如有字符被輸入文字輸入區(str.length>0)函數就執行:

  建立一個XMLHTTP對象
  發送一個HTTP請求到服務器上的"gethint.asp"上
  當HTTP觸發一次變動則XMLHTTP對象就會執行stateChanged()函數

  實例解析 - stateChanged()函數
  stateChanged()函數包含以下代碼:
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("txtHint").innerHTML=xmlHttp.responseText
}
}
  每當XMLHTTP對象的狀態發生改變stateChanged()函數就會被執行
  當狀態改變為4(或為"完成"),txtHint span里就會顯示反饋的文字


  AJAX源代碼

  AJAX 實例 - AJAX 源碼
  下面的源代碼是前一個頁面的。你可以將它復制并粘貼,自己來嘗試。

  AJAX HTML頁面
  這是一個HTML網頁。它包括了一個簡單的HTML表單和關聯JS的link
<html>
<head>
<script src="clienthint.js"></script>
</head><body><form>
First Name:
<input type="text" id="txt1"
onkeyup="showHint(this.value)">
</form><p>Suggestions: <span id="txtHint"></span></p> </body>
</html>The JavaScript code is listed below.
JS代碼在下面

  AJAX 的 JS
  這是JS代碼,被保存在"clienthint.js"文件中
var xmlHttp
function showHint(str)
{
if (str.length > 0)
{
var url="gethint.asp?sid=" + Math.random() + "&q=" + str
xmlHttp=GetXmlHttpObject(stateChanged)
xmlHttp.open("GET", url , true)
xmlHttp.send(null)
}
else
{
document.getElementById("txtHint").innerHTML=""
}
}
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("txtHint").innerHTML=xmlHttp.responseText
}
}
function GetXmlHttpObject(handler)
{
var objXmlHttp=null
if (navigator.userAgent.indexOf("Opera")>=0)
{
alert("This example doesnt work in Opera")
return;
}
if (navigator.userAgent.indexOf("MSIE")>=0)
{
var strName="Msxml2.XMLHTTP"
if (navigator.appVersion.indexOf("MSIE 5.5")>=0)
{
strName="Microsoft.XMLHTTP"
}
try
{
objXmlHttp=new ActiveXObject(strName)
objXmlHttp.onreadystatechange=handler
return objXmlHttp
}
catch(e)
{
alert("Error. Scripting for ActiveX might be disabled")
return
}
}
if (navigator.userAgent.indexOf("Mozilla")>=0)
{
objXmlHttp=new XMLHttPRequest()
objXmlHttp.onload=handler
objXmlHttp.onerror=handler
return objXmlHttp
}
}

  AJAX 服務端頁面
  服務端頁面被JS所調遣,是一名為"gethint.asp"的ASP文件,頁面是用VBS來針對IIS所寫的。它可以被輕松的寫成php或是一些其他的服務語言,它只是檢查了名字組并將相吻合的名字返回給客戶端:
dim a(30)
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"
q=request.querystring("q")if len(q)>0 then
  hint=""
  for i=1 to 30
    x1=ucase(mid(q,1,len(q)))
    x2=ucase(mid(a(i),1,len(q)))
    if x1=x2 then
      if hint="" then
        hint=a(i)
      else
        hint=hint & " , " & a(i)
      end if
    end if
  next
end if
if hint="" then
  response.write("no suggestion")
else
  response.write(hint)
end if


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 衡阳市| 锡林浩特市| 金乡县| 湘乡市| 建阳市| 隆回县| 双流县| 桐庐县| 县级市| 缙云县| 嘉鱼县| 舟曲县| 唐海县| 阿巴嘎旗| 沾化县| 即墨市| 姜堰市| 广德县| 封丘县| 青铜峡市| 江孜县| 平和县| 台南县| 临澧县| 兴业县| 永登县| 新巴尔虎左旗| 乌兰县| 兴隆县| 海伦市| 即墨市| 辽宁省| 湖北省| 当涂县| 和林格尔县| 寿阳县| 监利县| 桐乡市| 孝感市| 杨浦区| 光泽县|