예전 에 프로젝트 를 할 때 이런 요 구 를 만 났 어 요.사용 자 는 도시 의 이름 을 직접 입력 하면 이 도시 의 상응하는 정 보 를 얻 을 수 있 기 를 바란다.이전 에는 페이지 가 열 렸 을 때 몇 개의 자 바스 크 립 트 그룹 을 생 성하 여 비교 하 였 다.이렇게 하면 데이터 가 많 을 때 사용자 가 응답 지연 을 뚜렷하게 느 낄 수 있다. 지금 은 ajax 의 방법 으로 해 야 합 니 다.속도 가 좀 빨 라 야 합 니 다.고객 체험 이 좋 을 것 입 니 다.누가 우 리 를'체험 경제'시대 에 처 하 게 합 니까? 다음은 두 페이지 로 구 성 된 작은 예 입 니 다. city.html 페이지 코드 는 다음 과 같 습 니 다.
function createRequestObject() { var ro; var browser = navigator.appName; if(browser == "Microsoft Internet Explorer"){ ro = new ActiveXObject("Microsoft.XMLHTTP"); }else{ ro = new XMLHttpRequest(); } return ro; } var http = createRequestObject(); function sndReq(city) { http.open('get', 'zipcode.jsp?city='+city); http.onreadystatechange = handleResponse; http.send(null); } function handleResponse() { if(http.readyState == 4) { var response = http.responseText; var update = new Array(); if(response.indexOf('|' != -1)) { update = response.split('|'); document.getElementById("tier").value = update[0]; document.getElementById("rmm").value = update[1]; } } } 도시 에 해당 하 는 정 보 를 얻 습 니 다.
[Ctrl+A 전체 선택:
외부 Js 를 도입 하려 면 페이지 를 새로 고침 해 야 실행 할 수 있 습 니 다.] zipcode.jsp 코드 는 다음 과 같 습 니 다.
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page import="java.util.*" %>
<%@ page import="java.sql.Connection"%>
<%@ page import="java.sql.PreparedStatement"%>
<%@ page import="java.sql.ResultSet"%>
<%@ page import="com.util.MyConnection"%>
<%
String city = request.getParameter("city");
if(city==null)
{
city= "";
}
if(!city.equals(""))
{
String sql="select citrmm,cittier from tb_basecity where citname like '"+city+"'";
Connection conn = MyConnection.getConnection();
PreparedStatement state= conn.prepareStatement(sql);
ResultSet rs = state.executeQuery();
if(rs.next())
{
out.println(rs.getString("citrmm")+"|"+rs.getString("cittier"));
}
else
{
out.println(" "+"|"+" ");
}
rs.close();
state.close();
conn.close();
}
else
{
out.println(" "+"|"+" ");
}
%>
PS: Http.send()후 Http.ready state==4 검 측 을 통 해 불 러 오기 가 완료 되 었 음 을 설명 합 니 다.이 때 웹 페이지 내용 이 불 러 왔 습 니 다. Http.response Body 에 들 어 갔 어 요.