Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (2) [1] 2  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> AJAX+socket для оптимизации.На сколько правильно
McLotos  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



武士道
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1292
Пользователь №: 28342
На форуме: 5 лет, 11 месяцев, 14 дней
Карма: 28




Всем привет. Возникла такая мысля, хочу переписать весь проект так, чтобы все страницы генерировались ajax'ом, но это увеличит количество запросов к серверу, хотя для пользователей всё будет происходить быстрее. Есиь в проекте страница для генерации отчетов. В среднем, генерация одного отчета может длиться от 5и до 20и минут. Подскажите, можно ли сделать так, чтобы пользователю не нужно было ждать на странице пока сгенерируется отчет. Логично что для этого можно использовать сокеты, но есть ли тогда смысл в ajax?


--------------------
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Guest  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









McLotos
очереди?
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 15355
Пользователь №: 4190
На форуме: 9 лет, 3 месяца, 21 день
Карма: 468




Цитата (McLotos @ 24.11.2015 - 17:58)
В среднем, генерация одного отчета может длиться от 5и до 20и минут. Подскажите, можно ли сделать так, чтобы пользователю не нужно было ждать на странице пока сгенерируется отчет. Логично что для этого можно использовать сокеты, но есть ли тогда смысл в ajax?

Почему "логично использовать сокеты"? Можно и их, да. Но можно и по-другому сделать. Сначала одна команда идет на генерацию отчета. Затем делаются периодические запросы, готов ли он. И как готов, так и загружается.

И самое главное: если ты вообще заговорил про сокеты, то почему вообще про аякс говоришь? Если уж сокеты, то сокеты. Зачем им аякс в параллель?


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Razzwan  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Землянин
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 623
Пользователь №: 40774
На форуме: 2 года, 4 месяца, 12 дней
Карма: 11




А простое кэширование помочь не может? Или каждый отчет индивидуален и неповторим? Сомневаюсь, что это так.


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    -1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
McLotos  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



武士道
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1292
Пользователь №: 28342
На форуме: 5 лет, 11 месяцев, 14 дней
Карма: 28




Цитата (Razzwan @ 24.11.2015 - 22:49)
А простое кэширование помочь не может? Или каждый отчет индивидуален и неповторим? Сомневаюсь, что это так.

Это так. Не могу рассказать подробнее, закрытая информация =)
Цитата (sergeiss @ 24.11.2015 - 21:29)
если ты вообще заговорил про сокеты, то почему вообще про аякс говоришь? Если уж сокеты, то сокеты. Зачем им аякс в параллель?

Ну собственно про это и вопрос. Есть ли смысл в ajax =)
Но если вспомнить что AJAX это когда клиент асинхронно запрашивает данные с сервера, а сокеты это когда сервер выполнив задачу заставляет клиента принять работу, то мне кажется вполне логично что для подгрузки GUI можно юзать AJAX, а для сложных и долгих задач только сокеты, потому-что ajax'у тоже нужно ждать ответ.
Вообще задача больше для развития. Т.е. хочется покурить тему сокета.


--------------------
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 15355
Пользователь №: 4190
На форуме: 9 лет, 3 месяца, 21 день
Карма: 468




Цитата (McLotos @ 25.11.2015 - 05:28)
Но если вспомнить что AJAX это когда клиент асинхронно запрашивает данные с сервера, а сокеты это когда сервер выполнив задачу заставляет клиента принять работу....

Не совсем так. Давай я лучше проведу некую параллель, понятнее будет.

Представь, что ты общаешься с человеком, он тебе подсказывает что-то.
Аякс - это как если ты по каждому вопросу звонишь, после ответа отключаешь линию связи. Каждый раз ты должен набрать номер, подождать прохождение вызова, дождаться ответа. Принимающий вызов должен ответить.
Сокеты - это когда ты делаешь вызов один раз и не сбрасываешь соединение всё время, пока оно тебе нужно. И при этом никто не "заставляет" никого говорить или "принимать работу" smile.gif Вы точно также общаетесь, как. Разница в том, что если у другого человека к тебе есть вопрос или инфа, он не должен ждать, когда ты позвонишь, а может спросить сразу же. И ты задаешь свои вопросы и получаешь ответы точно также, как раньше. При этом тебе не нужно каждый раз тратить время на набор номера и ожидание ответа.


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Zzepish  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 5583
Пользователь №: 32538
На форуме: 5 лет, 1 день
Карма: 56




sergeiss
все-равно все построенно на сокетах)
Просто при аяксе они прирываются, а при работе на чистом сокете можно поддерживать соединение по необходимости)
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5618
Пользователь №: 35718
На форуме: 4 года, 6 месяцев, 7 дней
Карма: 173




Цитата (Zzepish @ 25.11.2015 - 17:50)
все-равно все построенно на сокетах

кто тебе сказал?
ajax использует http протокол, сокеты испльзуют свой протокол


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Zzepish  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 5583
Пользователь №: 32538
На форуме: 5 лет, 1 день
Карма: 56




Valick
сокет- просто соединение. Оно ниже уровня протоколов. Через сокеты ты можешь работать с любым протоколом.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5618
Пользователь №: 35718
На форуме: 4 года, 6 месяцев, 7 дней
Карма: 173






--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 15355
Пользователь №: 4190
На форуме: 9 лет, 3 месяца, 21 день
Карма: 468




Valick, в целом Zzepish прав wink.gif Любое соединение с сервером - это обращение к порту (к сокету). Будь это 80 или 8080 для http, будь это отдельный порт (сокет) для WebSocket или любой другой, суть у них на самом деле одна: установить соединение и передать данные.

Слово "сокеты" прижилось больше в связи с WebSocket, но относится не только к ним, а ко всем портам. На всякий случай пруф-линк: https://ru.wikipedia.org/wiki/%D0%A1%D0%BE%...%D0%B9%D1%81%29
Точнее, относится не просто к портам, а к паре "адрес:порт".


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5618
Пользователь №: 35718
На форуме: 4 года, 6 месяцев, 7 дней
Карма: 173




sergeiss, не сношай мне мозг


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    -1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
McLotos  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



武士道
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1292
Пользователь №: 28342
На форуме: 5 лет, 11 месяцев, 14 дней
Карма: 28




Так получается что я могу полностью избавиться от AJAX.
Но тогда возникает несколько вопросов:
I. Как прикрутить сокеты к такой схеме:
1. index.php решает что хочет построить страницу и через autoload получает нужные классы, создает объекты Config и Request и отдает их объекту FrontController.
2. FrontController запрашивает у фабрики классов объекты Model, View, Controller для текущей страницы. Передает объекты Model и View объекту Controller. Спрашивает у Request, есть ли какие-то GET или POST данные, и отдает их в соответствующий метод объекта Controller.
Как в эту схему вписать сокеты?
II. На сколько я знаю если открыть например несколько вкладок, то будут созданы отдельные сокеты для каждой вкладки, а при переходе на другой url сокет будет пересоздан. Как мне тогда решить основную проблему - клиент запросил отчет с сервера и ушел дальше работать. Как послать клиенту уведомление что отчет готов, если сокет был пересоздан?


--------------------
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Zzepish  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 5583
Пользователь №: 32538
На форуме: 5 лет, 1 день
Карма: 56




Valick
https://ru.wikipedia.org/wiki/%D0%A1%D0%B5%...D0%BB%D1%8C_OSI кури транспортный уровень (Это сокеты, работаю по протоколу tcp\udp Ip). http куда выше по уровню
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5618
Пользователь №: 35718
На форуме: 4 года, 6 месяцев, 7 дней
Карма: 173




Zzepish, давай ты всётаки не будешь загибать пальцы... речь о веб-сокетах
а так можно всё свести к 0 и 1


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (2) [1] 2  Ответ в темуСоздание новой темыСоздание опроса