Показать сообщение отдельно
  #4 (permalink)  
Старый 05.04.2015, 19:13
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от theKingOfJava
 
Регистрация: 31.03.2015
Сообщений: 113

Вот такой вариант:
<html>
<head>
</head>
<body>

<button id="b1">1 response </button>
<button id="b2">2 response </button>


<script>



Request={
 counter: 0,
 create: function(){
  var o=Object.create(this)
  o.request=new XMLHttpRequest()
  return o
 },
 open: function(){this.request.open("GET", this.url); return this},
 send: function(){this.request.send(null); return this},
 set: function(){
  this.request.onreadystatechange=function(){
    if(this.request.readyState==4&&this.request.status==200) {
      this.onResponse()
      this.step()
   }
  }.bind(this)
  return this
 },
 step: function(){
  if(this.limit<=this.counter) return this.onEnd()
  this.counter++
  this.create().open().set().send()
 },
 start: function(){this.step()}
}

makeRequests=function(limit){
 return function(){
    var request=Request.create()
    request.url="http://myhost/foo"
    request.onResponse=function(){doSomethingWith(this.request.responseText)}
    request.onEnd=function(){location.reload()},
    request.limit=limit
    request.start()
}}

b1.onclick=makeRequests(1)
b2.onclick=makeRequests(2)


</script>
</body>
</html>

Последний раз редактировалось theKingOfJava, 05.04.2015 в 19:15.
Ответить с цитированием