Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Skrypt]Mój skrypt ajaxu
daniel1302
post
Post #1





Grupa: Zarejestrowani
Postów: 602
Pomógł: 30
Dołączył: 1.08.2007
Skąd: Nowy Sącz

Ostrzeżenie: (0%)
-----


Witam, oto mój skrypt ajaxu. Trochę zgapiłem z adv ale jeśli coś podglądam to muszę to rozgryźć więc JS umie dużo więcej.

  1. /* Nowy obiekt HttpRequest */
  2. function getXMLHttpRequest ()
  3. {
  4.      var request = false;
  5.      try
  6.      {
  7.            /* Próba dla FF > 2/OPERA > 9/IE>7 */
  8.            request = new XMLHttpRequest();
  9.            request.overrideMimeType('text/xml');
  10.      }
  11.      catch (error1)
  12.      {
  13.            try
  14.            {
  15.                  /* Próba dla IE6 */
  16.                  request = new ActiveXObject('Msxml2.XMLHTTP');
  17.            }
  18.            catch (error2)
  19.            {
  20.                  try
  21.                  {
  22.                        /* Próba dla IE 5 */
  23.                        request = new ActiveXObject('Microsoft.XMLHTTP');
  24.                  }
  25.                  catch (error3)
  26.                  {
  27.                        request = false;
  28.                  }
  29.            }
  30.      }
  31.      return request;
  32. }
  33.  
  34. req = getXMLHttpRequest (); //Stwóż obiekt HttpRequest
  35.  
  36. /* Obiekt jądra */
  37. var obj =
  38. {
  39.      url : null,
  40.      onInitialization : null, //Rozpoczynam Ładowanie
  41.      onLoading : null, //Ładuje
  42.      onLoaded :null, //Załadowano
  43.      onError : null, //Błąd
  44.      onComplete : null, //Odebrano
  45.      onSucces : null, //Zakończono      
  46.      onInitializationHandled : false, //Rozpoczynam Ładowanie- WYkonano
  47.      onLoadingHandled : false, //Ładuje- Wkonano
  48.      onLoadedHandled : false, //Załadowano- Wkonano
  49.      onCompleteHandled : false, //Odebrano- Wkonano
  50.      onSuccesHandled : false //Zakończono- Wkonano
  51. }
  52.  
  53. //Monitoruj stan
  54. obj.onProgress = function ()
  55. {
  56.      obj._onInitialization();
  57.      switch (req.readyState)      {
  58.            case 1: obj._onLoading(); break;
  59.            case 2: obj._onLoaded(); break;
  60.            case 3: obj._onComplete(); break;
  61.            case 4: obj._onSucces(); break;
  62.      }
  63. };
  64.  
  65. //Inicjacja
  66. obj._onInitialization = function ()
  67. {
  68.      if (obj.onInitializationHandled == true)
  69.            return;
  70.            obj.onInitializationHandled = true;
  71.      obj.registerEvent('Initialization', req);
  72.      
  73. };
  74.  
  75. //Ładowanie
  76. obj._onLoading = function ()
  77. {
  78.      if (obj.onLoadingHandled == true)
  79.            return;
  80.      obj.registerEvent('Loading', req);
  81.      obj.onLoadingHandled = true;
  82. };
  83.  
  84. //Załadowane
  85. obj._onLoaded = function ()
  86. {
  87.      if (obj.onLoadedHandled == true)
  88.            return;
  89.      obj.registerEvent('Loaded', req);
  90.      obj.onLoadedHandled = true;
  91. };
  92.  
  93. //Zakończono
  94. obj._onComplete = function()
  95. {
  96.      if (obj.onCompleteHandled == true)
  97.            return;
  98.      obj.registerEvent('Complete', req);
  99.      obj.onCompleteHandled = true;
  100. };
  101.  
  102. obj._onSucces = function ()
  103. {
  104.      if (obj.onSuccesHandled == true)
  105.            return;
  106.      if (req.status == 200)
  107.            obj.registerEvent('Succes', req);
  108.      else
  109.            obj.registerEvent('Error', req);
  110. };
  111.  
  112. //Zarejestruj zdarzenie
  113. obj.registerEvent = function (event)
  114. {
  115.      args = new Array();
  116.      if (typeof obj != 'object')
  117.            return;
  118.      if (typeof obj['on'+event] != 'function')
  119.            return;
  120.      for (i=1; i<arguments.length; i++)
  121.            args.push(arguments[i]);
  122.      obj['on'+event].apply(null, args);
  123. };
  124.  
  125. /* Obiekt myAjax*/
  126. myAjax = new Object();
  127. myAjax.get = function (arguments)
  128. {
  129.      return myAjax.getResult('GET', arguments);
  130. };
  131.  
  132. /* Zwróć wynik */
  133. myAjax.getResult = function(method, arguments)
  134. {
  135.      //Sprawdz metodę odwołania
  136.      if (typeof method == 'undefined' || method == null)
  137.            method = 'GET';
  138.      //Sprawdz czy obekt XMLHttpRequest został skasowany jeśli nie to skasuj
  139.      if (req != null)
  140.      {
  141.            delete req.onreadystatechange;
  142.            req = null;            
  143.      }
  144.      req = getXMLHttpRequest();
  145.      //Sprawdz czy można utwożyć obiekt jeśli tak to stwórz a jeśli nie to zwróć pusty wynik
  146.      if (req == null)
  147.            return null;
  148.      //Sprawdz obiekt jądra
  149.      if (obj == null)
  150.            return null;
  151.      //Przypisz argumenty
  152.      myAjax.setArguments(arguments);
  153.      //Sprawdz link
  154.      if (obj.url == null || typeof obj.url == 'undefined')
  155.            alert('daniel123');
  156.      //Moitoruj stan
  157.      req.onreadystatechange = function () { obj.onProgress(); }
  158.      //Nadaj wartości domyślne
  159.      obj.onInitializationHandled =
  160.            obj.onLoadingHandled =
  161.                  obj.onLoadedHandled =
  162.                        obj.onCompleteHandled =
  163.                              obj.onSuccesHandled = false;
  164.      //Pobierz plik
  165.      req.open("GET", obj.url);
  166.      req.send(null);
  167.      
  168.            
  169.      
  170. };
  171. /* Przypisz arguenty */
  172. myAjax.setArguments = function(arguments)
  173. {
  174.      for (var a in arguments)
  175.      {
  176.                  obj[a] = arguments[a];
  177.      }
  178. };


  1. <script type="text/javascript" src="ajax.js"></script>
  2. <script type="text/javascript">
  3. //<![CDATA[
  4. function test()
  5. {
  6.      document.getElementById('myj');
  7.      myAjax.get({
  8.            url : 'data.php',
  9.            onInitialization: function(obj) {element.innerHTML = 'Inicjacja';},
  10.            onLoading: function(obj) {element.innerHTML = 'Ładowanie';},
  11.            onLoaded: function(obj) {element.innerHTML = 'Załadowano';},
  12.            onComplete: function(obj) {element.innerHTML = 'Odebrano';},
  13.            onSucces: function(obj) {element.innerHTML = obj.responseText;},
  14.            onError: function(obj) {element.innerHTML = 'Napotkano błąd: '+obj.status;}
  15.      });
  16. }
  17.  
  18. //]]>
  19. </script>
  20. <div id="myj">Hehehehehehe</div>
  21. <input type="submit" value="Kliknij i sprawdz" onClick="test()">

Dziękuje za ocene
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 08:28