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?