2010-10-22 3 views
2

Я ищу библиотеку Javascript, у которой только AJAX нет другой функции. например небольшой простой XMLHttp Wrapper.Только AJAX Библиотека Javascript

+8

Я настоятельно рекомендую [vapor.js] (http://vaporjs.com/) –

+2

@Nick: steam.js '=>' genius –

+0

Вам действительно нужен XML Http Wrapper? Почему бы не написать их самостоятельно? Вероятно, это будет быстрее, чем поиск и ожидание ответов здесь ... –

ответ

0

Вот небольшой фрагмент JavaScript-фреймворка JavaScript, который я написал давно, когда я практически ничего не знал о JavaScript ... он едва ли содержит какие-либо методы AJAX, просто функции-обертки, которые взаимодействуют с бэкэнд PHP, чтобы разрешить PHP для выполнения всей работы ...

Честно говоря, чтобы получить то, что вам кажется, вы ищете ... просто сядьте и напишите себе библиотеку AJAX со всеми общими вспомогательными функциями. Это займет всего несколько часов.

The Javascript:

(function() { 

var 
    PHPJS = window.PHPJS = window.$ = function() { 
     return new PHPJS.Strings; 
    }; 

PHPJS.Strings = PHPJS.prototype = { 

    InitAJAX: function(Library, ServerString) 
    { 
     var ResultCache = document.body; 
     var FunctionRequest; 
     try { 
      FunctionRequest = new XMLHttpRequest(); 
     } catch (e) { 
      try { 
       FunctionRequest = new ActiveXObject("Msxml2.XMLHTTP"); 
      } catch (e) { 
       try { 
        FunctionRequest = new ActiveXObject("Microsoft.XMLHTTP"); 
       } catch (e) { 
        throw new Error("The XMLHttpRequest() object is not supported by your browser.") 
        return false; 
       } 
      } 
     } 

     FunctionRequest.onreadystatechange = function() { 
      if (FunctionRequest.readyState == 4 && FunctionRequest.status == 200) { 
       ResultCache.innerHTML = FunctionRequest.responseText; 
       return FunctionRequest.responseText; 
      } 
     } 

     switch (Library) { 
      case 'Arrays' : 
      FunctionRequest.open("GET", "functions/arrays-lib.php" + ServerString, true); 
      break; 
      case 'Math' : 
      FunctionRequest.open("GET", "functions/math-lib.php" + ServerString, true); 
      break; 
      case 'Strings' : 
      FunctionRequest.open("GET", "functions/strings-lib.php" + ServerString, true); 
      break; 
     } 
     FunctionRequest.send(null); 
    }, 

    /* String Functions */ 
    addcslashes: function(str, charlist) 
    { 
     return this.InitAJAX('Strings','?function=addcslashes&String='+str+'&Charlist='+charlist); 
    }, 
    addslashes: function(str) 
    { 
     return this.InitAJAX('Strings','?function=addslashes&String='+str); 
    }, 
    bin2hex: function(str) 
    { 
     return this.InitAJAX('Strings','?function=bin2hex&String='+str); 
    }, 
    chop: function(str,charlist) 
    { 
     return this.InitAJAX('Strings','?function=chop&String='+str+'&Charlist='+charlist); 
    }, 
    chr: function(int) 
    { 
     return this.InitAJAX('Strings','?function=chr&Int='+int); 
    }, 
    chunk_split: function(str, chunklen, end) 
    { 
     return this.InitAJAX('Strings','?function=chunk_split&String='+str+'&Chunklen='+chunklen+'&End='+end); 
    }, 
    convert_cyr_string: function(str) 
    { 
     return this.InitAJAX('Strings','?function=convert_cyr_string'); 
    }, 

    /* more functions... */ 
} 

})(); 

//PHPJS.bin2hex('afsdfadsafdsafdasfsaf'); 

РНР:

<?php 
switch($_GET['function']) { 
    case 'addcslashes' :  
     $charlist = (@$_GET['Charlist']) ? ','.$_GET['Charlist'] : ''; 
     echo addcslashes($_GET['String'], $charlist); 
    break; 
    case 'addslashes' : 
     echo addslashes($_GET['String']); 
    break; 
    case 'bin2hex' :  
     echo bin2hex($_GET['String']); 
    break; 
    case 'chop' : 
     $charlist = (@$_GET['Charlist']) ? ','.$_GET['Charlist'] : ''; 
     echo rtrim($_GET['String'], $charlist); 
    break; 
    case 'chr' : 
     echo chr($_GET['Int']); 
    break; 
    case 'chunk_split' : 
     echo chunk_split($_GET['String'], @$_GET['Chunklen'], @$_GET['End']); 
    break; 
     /** ...etc, etc... **/ 
?> 
+10

Это не то, что я ищу. –

1

Это не библиотека, но это "Малый простой XMLHttp Wrapper" Я сделал:

//params format:"bob=hi&id=1295&lol=haha" 
function ajax_post(post_url,params,success_callback,fail_callback,timeout) 
{ 
    var xmlHttp = new XMLHttpRequest(); 
    xmlHttp.open("POST",post_url, true); 

    xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    xmlHttp.setRequestHeader("Content-length", params.length); 
    //xmlHttp.setRequestHeader("Connection", "close"); 

    xmlHttp.onreadystatechange=function() 
    { 
     if (xmlHttp.readyState == 4) 
     { 
      clearTimeout(xmlHttpTimeout); 
      if(xmlHttp.status == 200) 
      { 
       success_callback(); 
      } 
      else 
      { 
        fail_callback(); 
      } 
     } 
    } 
    xmlHttp.send(params); 

    var xmlHttpTimeout=setTimeout(ajaxTimeout,timeout); 
    function ajaxTimeout() 
    { 
     xmlHttp.abort(); 
     fail_callback(); 
    } 

} 

function ajax_get(url,success_callback,fail_callback,timeout) 
{ 
    var xmlHttp = new XMLHttpRequest(); 
    xmlHttp.open("GET",url, true); 

    xmlHttp.onreadystatechange=function() 
    { 
     if (xmlHttp.readyState == 4) 
     { 
      clearTimeout(xmlHttpTimeout); 
      if(xmlHttp.status == 200) 
      { 
       success_callback(xmlHttp.responseText); 
      } 
      else 
      { 
        fail_callback(); 
      } 
     } 
    } 
    xmlHttp.send(); 

    var xmlHttpTimeout=setTimeout(ajaxTimeout,timeout); 
    function ajaxTimeout() 
    { 
     xmlHttp.abort(); 
     fail_callback(); 
    } 

} 
+3

Вниз голосов приемлемы, но, пожалуйста, добавьте комментарий, объясняющий ваши рассуждения. В конце концов, Stack Exchange - это платформа для обучения. –

Смежные вопросы