Подтвердить что ты не робот

Может ли кто-нибудь объяснить разницу между Ajax и отдыхом?

Ajax

Асинхронный Javascript и XML ". Ajax свободно определяет набор технологии, которые помогут сделать веб-приложения более богатыми пользователями опыт. Выполняется обновление данных и обновление экрана. асинхронно используя javascript и xml (или json или просто обычный http запись)

Остальные

"Передача государственного представительства". Приложения, использующие принципы REST имеют структуру Url и шаблон запроса/ответа, который вращается вокруг использования ресурсов. В чистой модели HTTP-глаголы Get, Post, Put и Delete используются для извлечения, создания, обновления и удаления ресурсов соответственно. Put и Delete часто не используются, оставляя Get и "Опубликовать" для выбора (GET) и создания, обновления и удаления (POST)

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

Предположим, у меня есть этот код на стороне клиента (javascript):

   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);   
    }

И это на стороне сервера (PHP/Symfony2 Controller с аннотациями)

    /**
    *@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));
        }
    }
}

В какой части этого кода я использовал REST? Какая часть AJAX? я даже использовал REST?

4b9b3361

Ответ 1

Я не буду подробно комментировать ваш код, но:

AJAX в основном относится к созданию асинхронного запроса в JavaScript, традиционно отправляющему/принимающему XML (хотя в настоящее время JSON часто используется вместо XML). Так что технику вы используете на стороне клиента.

REST - это концепция обмена HTTP-запросами, поэтому вы делаете запросы RESTful запросов (например, "get" ) на REST-API, который вы реализовали на стороне сервера.

Смотрите: Является ли AJAX a rest api

И вы можете немного почитать о REST и AJAX в Википедии и других простых для доступа источниках информации.