2014-04-14 23 views
11

AjaxBirisi Ajax ile dinlenme arasındaki farkı açıklayabilir mi?

Ajax gevşek teknolojiler kümesidir uyumsuz javascript ve xml kullanarak. Web uygulamaları daha zengin bir kullanıcı deneyimi sunmak olmasına yardımcı Veri güncelleme ve ekranın ferahlatıcı yapılır tanımlar. Asenkron JavaScript ve XML" (json veya sadece normal http sonrası ya)

istirahat

"Temsili Durum Transferi". REST ilkeleri kullanılarak yapılan uygulamalarda, Url yapısı ve kaynak kullanımı çevresinde 'u döndüren bir istek/yanıt kalıbı vardır. Saf bir modelde, HTTP Fiilleri Get, Gönderi, Koy ve Sil sırasıyla kaynakları almak, oluşturmak, güncellemek ve silmek için kullanılır. Symfony2 ile ben kod web sitelerini alın ve Post Bu koşulları konusunda gerçekten kafam karıştı (POST)

seçmek için harita (GET) ve oluşturma, güncelleme ve silme bırakarak koyun ve genellikle kullanılmaz silin ve her şey her zaman işe yarıyor, ama patronum bana sorduğumda, bunu açıklamak için kullanacağım kelimeleri gerçekten bilmiyorum. Bunun sebebi bütün bunları bir hobi olarak başladım ve hayatımı pratik parçalara yoğunlaştırmaktan kaynaklanmış olabilirim. . ne kısımda

function image_remover(myimageId,path) 
    { 
     var xml = (window.XMLHttpRequest) ? 
       new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"); 

     xml.open("GET", path+"?imageId="+myimageId, true); 
     xml.setRequestHeader("Content-type", "application/json"); 

     xml.onreadystatechange = function() 
     { 
      if(xml.readyState === 4 && 
       xml.status  === 200) 
      { 
       var serverResponse = JSON.parse(xml.responseText); 
       switch(serverResponse.d) 
       { 
        // do stuff 
       } 
      } 
     } 
     xml.send(null); 
    } 

Ve bu sunucu tarafında (ek açıklamalarla PHP/Symfony2'de Kontrolörü)

/** 
    *@Route("/removeImage",name="image_remover") 
    */ 
    public function removeImageAction(Request $request) 
    { 
     //If user is not logged in.. 
     if (false === $this->get('security.context')->isGranted('ROLE_USER')) 
     {   
      //ip block 
      return new Response("an error has occured"); 
     } 


     //My requests 
     $current_imageId = intval($request->query->get('imageId')); 

     //Getting image repository 
     $em = $this->getDoctrine()->getManager(); 
     $db_myimage = $em->getRepository('GabrielUploadBundle:Image')->findOneById($current_imageId); 

     //if image was found 
     if($db_myimage) 
     { 
      //Owner of this image 
      $imageowner = $db_myimage->getImageowner(); 

      //Getting user name 
      $user = $this->getUser(); 
      $current_username = $user->getUsername();  

      // is username == imageowner? if not = block ip 
      if($current_username == $imageowner) 
      { 
       //remove image from database 
       $em->remove($db_myimage); 
       $em->flush(); 

       // d = deleted y = yes 
       $response = array("d"=>1);  
       return new Response(json_encode($response)); 
      } 
      else 
      { 
       //ip block 
       $response = array("d"=>0); 
       return new Response(json_encode($response)); 
      } 
     } 
     else 
     { 
      //image object not found 
      //d = deleted, n = not found 
      $response = array("d"=>0); 
      return new Response(json_encode($response)); 
     } 
    } 
} 

:

ben istemci tarafında bu kodu (javascript) kullandığınızı varsayalım Bu kod REST'i mi kullanmış? AJAX hangi kısımdır? REST'i bile kullandım mı?

+1

Bu sorunun burada kör olduğundan emin misiniz? ama Ajax-Javascript-Client tarafı, sadece uygulamayı yeniden yüklemeye gerek kalmadan sunucuyla konuşuyor, bu bazı parametreleri geçiyor, siz bir gönderi hizmeti kullanıyorsunuz, çünkü siz de gönderip json, xml, php işlevi çağrılıyor .. – jycr753

+0

AJAX, okumak istediğiniz harfi içeren posta zarfınızı (REST) ​​getiren postacı gibidir. Postacı Soket veya cURL gibi başka bir şey olabilir ve Zarf da SOAP – imkrisna

cevap

6

ben ayrıntılı olarak kod üzerinde yorum ama olmaz:

AJAX temelde (günümüzde her ne kadar JSON genellikle XML yerine kullanılır) XML alma/geleneksel, JavaScript asenkron istekte gönderme anlamına gelir. Yani, istemci tarafında kullandığınız teknik bu.

REST, HTTP istek değişimi için bir konsepttir, bu nedenle sunucu tarafında uyguladığınız REST-API'ye karşı RESTful istek çağrıları (örn. 'Get') oluşturuyorsunuz.

Bkz: Is AJAX a Rest api

Ve Wikipedia ve diğer kolay erişime bilgi kaynaklarıyla ilgili REST ve AJAX hakkında biraz yukarı okumak isteyebilirsiniz.

+0

gibi başka bir şey olabilir Yani Ajax sunucuda "GET/url? Id = bir şey" gibi REST ise JSON/XML veri alışverişi anlamına gelir? – user254883

+0

tamam sanırım anladım – user254883

İlgili konular