Hatsune-Miku
@Hatsune-Miku
Няшк :3

Где бы почитать про такую «архитектуру»?

Незнаю что загуглить и как сформулировать вопрос, не кидайте тапки)

Хочется узнать про клиент-серверную архитектуру (ведь так называется?). То есть юзер заходит на сайт грузятся JSки которые уже через AJAX обащаются с restfull бекендом.

Где почитать про такую архитектуру что бы попроще было?
  • Вопрос задан
  • 233 просмотра
Решения вопроса 3
@VZVZ
Reverse-Engineer, Software Developer, Architect
> Хочется узнать про клиент-серверную архитектуру (ведь так называется?).
Строго говоря, клиент-серверная архитектура применена в любом сайте, даже если он без ajax (тупо на form'ах).
И более того, даже если это вообще одна статическая страница HTML, лежащая на серваке без всякого PHP, то это все равно уже клиент-серверная архитектура.
Ведь браузер (или иной клиент), когда вы в адресной строку вбиваете путь к каждой странице, делает GET-запрос к серверу и получает ответ с содержимым этой страницы.

Вот здесь почитать для начала:
codeproject.com/Tips/1065669/How-To-Build-Web-Site...
Вначале там краткий пример очень простого чатика на form'ах с PHP+MySQL, без AJAXа.
Потом показано, как в такой чат очень быстро добавить AJAX, сначала голым JS, затем jQuery.

Затем уже самостоятельно вы можете подумать, как усовершенствовать этот AJAX и довести его до уровня реального REST API, к которому не просто возможно, а реально удобно подключаться и из других клиентов (скажем, собственного мобильного приложения, вроде как WebMoney Keeper, или как у VK или Facebook) Подсказка: JSON, React.

Обязательно скачайте и поставьте сниффер Fiddler. Он позволяет вывести изучение клиент-серверной архитектуры по протоколам HTTP/HTTPS на новый глубокий уровень, многое тайное для простых смертных сделать явным, изучить бек-енд вашего сайта на предмет использования его в качестве REST API для сторонних клиентов (и не только вашего, но и чужих)))
Ответ написан
@djay
Так это же Single Page Applications, которые общаются с бек-эндом через REST-API. Вообще гугли про SPA Applications (туториалы, мануалы). Там по сути ничего сложного нет - достаточно уметь выполнить запрос и подставить полученные данные.
Ответ написан
gzhegow
@gzhegow
aka "ОбнимиБизнесмена"
Эм насколько я понял этих любителей придумать новые слова restful, куемпампул и прочих друзей:

Там как идет - через запрос AJAX отсылается в заголовках (headers) тип запроса - их там аж несколько штук - всякие GET POST PUT DELETE и тд - вишь ли пацанам было лень отправить одну переменную type - и они такие придумали RESTful сервисы - совершили переворот в науке.

А вместе с ними такими запросами научились кидаться мобильные телефоны, приложения разные и вообще как они тостеры не научили кидаться ими. А твое апи дескать такое все из себя апи, что ему плевать - кто спросил - мобилка, чайник или ноутбук - он всегда что-то сделает. Но они ясен болт спросили, передав обычный массив - JSON данные, и поэтому для чего было создавать новые типы запросов кроме GET и POST - опять же тайна.

По факту - обычный например если с PHP-бекендом - контроллер, или даже просто файл ajax_user_add.php, который обрабатывает входящий массив и тип запроса и что-то делает - назад выдает сообщение, данные и статус ошибки. Они поспешили назвать это API и теперь это знаешь как на собеседовании звучит! Без этого на работу не берут, вотЪ.

Это твой яваскрипт назад подхватывает и с ним что-то уже делает.

Что в этом всем RESTful-ьного - ну имена запросов, название еще, а что еще надо, чтобы технологию придумать?

Наверное я дилетант просто, поэтому не понимаю всей гениальной концепции этой идеи.

file.php
empty($_REQUEST['foo']) && ajax_abort('Foo not defined');
// do something
ajax_complete();
function ajax_complete($msg = null, $data = null) {
  $response['status'] = 1;
  !empty($msg) && $response['msg'] = $msg;
  !empty($data) && $response['data'] = $data;
  exit(json_encode($response));
}
function ajax_abort($msg = null, $data = null) {
  $response['status'] = 0;
  !empty($msg) && $response['msg'] = $msg;
  !empty($data) && $response['data'] = $data;
  exit(json_encode($response));
}


file.js
(function ($, App) {
    // do something
    var data = {
      "foo" : "bar"
    };
    $.ajax(
      'file.php',
      {
        "data" : data,
        "type" : "POST",
        "dataType" : "json"
      }
    ).done(function (response) {
      // do something
    });
  })(jQuery, App = window.App || {});


Ко всей канители, что представлена выше добавляются еще
  • библиотеки (это такие значит ящички-массивы с функциями часто юзабельными),
  • модули (ящички-массивы без которых прога тупо не работает),
  • в модулях сделаем - зависимости (сначала запускать вот этот ящичек, а потом уже вот тот),
  • модули - роутинг и контроллеры (если юзер ввел в строку адреса это - какой ящичек подгрузить?),
  • модули - модели (зачем нам верстку туда сюда через запрос пересылать, мы верстку сразу отправим, а потом будем менять просто имя юзера в яваскрипте, а сразу как модель поменялась - рендер яваскриптовый будет сам себя перестраивать - проще говоря мы отправим вместо 1000 символов текста - массив с полями имя, емейл, телефон, а яваскрипт сам построит верстку, поскольку она уже была отправлена при старте программы)
  • модуль - рендер (в ящичке как бы не мешает что-то и показывать еще),
  • модуль - логи и вывод сообщений (какой из ящичков барахлит),
  • модуль - "шина событий" (массив, который заполняется действиями, которые надо выполнить когда что-то произойдет в определенном порядке)

и получается Ангуляр.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
iCoderXXI
@iCoderXXI
React.JS/FrontEnd engineer
Ember.JS
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект
18 апр. 2024, в 21:56
2000 руб./за проект