работа с ajax

#javascript #ajax

#javascript #ajax

Вопрос:

Я работаю с Ajax, и это первый раз, когда я узнаю об этом. У меня есть несколько вопросов, если кто-нибудь будет любезен объяснить. Я работаю над чем-то для своего класса, он дал нам это для использования

 <html>
<head>
<title>Ajax Examples</title>
<style type="text/css">
body {
font-family:      Trebuchet MS;
color:            #173F5F;
  background-color:#BFFFFF; 
 margin:10px;
 }
.formtable{
 border:2px solid #009999;
 background-color:#006B6b;
 color:#FF6600;
   }
.btnSubmit{
color:#FF6600;
background-color:#BFFFFF;
border:2px inset #FF6600; 
width:100px;
  }
h1{
color:#FF6600;
 }
input, textarea{
color:#FF6600;
border:1px solid #FF6600;
  }
hr{
background-color:#FF6600;
height:3px;
  }
#results{
color:#FF6600; 
width:300px;
 }
</style>
<script type="text/javascript">
function loadurl(dest) { 
try {
    // Moz supports XMLHttpRequest. IE uses ActiveX.  
    // browser detection is bad. object detection works for any browser 
     xmlhttp = window.XMLHttpRequest?new XMLHttpRequest():
     new ActiveXObject("Microsoft.XMLHTTP"); 
}
catch (e) { 
    //browser doesn't support
    alert("Get with the times man!"); 
}
 // the xmlhttp object triggers an event everytime the status changes 
 // triggered() function handles the events
 xmlhttp.onreadystatechange = triggered;
 // open takes in the HTTP method and url. 
 xmlhttp.open("GET", dest);
  // send the request. if this is a POST request we would have  
  // sent post variables: send("name=valerieamp;gender=female)  
  // Moz is fine with just send(); but   
  // IE expects a value here, hence we do send(null);
 xmlhttp.send(null);
  }
function triggered() {
 // if the readyState code is 4 (Completed)  
 // and http status is 200 (OK) we go ahead and get the responseText   
 // other readyState codes:  
 // 0=Uninitialised 1=Loading 2=Loaded 3=Interactive
if ((xmlhttp.readyState == 4) amp;amp; (xmlhttp.status == 200)) {
    // xmlhttp.responseText object contains the response. 
     document.getElementById("output").innerHTML = xmlhttp.responseText;
 }
 }
</script>
<title>LAB 14</title>
</head>
<body>
<h1>Simple Ajax</h1> 
<hr>
<p>This page will automatically load another file into page below.</p>

<a href="#" onClick="loadurl('info.html')" >click here to load another file</a>
<div id="output"></div>
</body>
</html>
  

Теперь все, что он сказал, это, чтобы мы сделали ваш info.html страница о вас — вы могли бы сделать это резюме или что-то еще по вашему выбору. Теперь у меня есть тот, который я сделал. Мой вопрос был бы в том, что у меня есть ftp-сервер, на который мы должны его загрузить. Смогу ли я просмотреть страницу до ее загрузки, чтобы узнать, работает ли она, или я что-то делаю, или что-то не так на странице, которая неверна.

Комментарии:

1. Потому что, когда я открываю файл, он не будет переходить по ссылке, чтобы показать, что я печатаю.

Ответ №1:

Если вы не используете веб-сервер на своем локальном компьютере, это не сработает. Вы видите эту часть?

 if ((xmlhttp.readyState == 4) amp;amp; (xmlhttp.status == 200)) {
  

Это означает, что пока JavaScript не получит код состояния «200 OK» от сервера, на котором размещена страница, он никогда не обработает часть внутри if() блока.

Вы можете попробовать это вместо:

 if ((xmlhttp.readyState == 4) amp;amp; (xmlhttp.status == 200 || (xmlhttp.status == 0 amp;amp; document.location.protocol == "file:"))) {
  

Нет гарантии, что это сработает, но должно сработать.

Комментарии:

1. хорошо, я понимаю это, поэтому, как только я загружу это на свою filzila, я смогу это увидеть .. у меня просто возникли проблемы с входом в мой школьный ftp..

Ответ №2:

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

Для сверхпростых глупостей я бы порекомендовал SimpleServer от AnalogX, если вы используете Windows. Он действительно легкий и делает то, что вам нужно.