2013-06-14 2 views
-3

У меня есть вопрос, связанный с разработкой JSP. Мой сервлет достигает точки, где мои простые классы Java не могут помочь мне с моим сайтом, и Javascript берет верх. Проблема в том, что данные очень большие, а с Javascript он очень медленный. Будет ли использование джавабеев ускорить его? На сколько? Как javascript может получать и передавать значения Javabeans? Явабеанс динамический, как javascript, или он выполняется на странице обновления, как JSP? Или я ошибаюсь вообще (я думаю, что я) Так много вопросов, пожалуйста, ответьте.Javascript vs JavaBean в скорости

+0

О чем вы думаете, когда говорите, что будете использовать javabeans? –

ответ

2

Вы хорошо справляетесь со значительным успехом, желая написать как сложную часть на стороне сервера, так и код javascript на стороне клиента, но, как я могу видеть из ваших вопросов (извините, если я ошибаюсь) Отсутствие точки при взаимодействии с сервером и клиентом.

Сначала давайте посмотрим на чрезмерный протокол HTTP, который регулирует работу современных веб-приложений. В соответствии с архитектурой HTTP все взаимодействие между клиентом (представленное как приложение-браузер на локальном компьютере) и сервером (представленное как контейнер сервлетов с запущенными на нем Java-классами - это tomcat/jboss/etc - удаленный компьютер) осуществляется с помощью простых запросов (вопрос из браузера) - ответ (ответ от сервера). Клиент запрашивает URL-адрес для некоторой информации, сервер передает эту информацию клиенту, после того как клиент обрабатывает (считывает) извлеченную информацию (которая может иметь не только изображения, видео, аудио, текст, но и код программы в виде javascript) и просит еще конкретную информацию с сервера в следующем вопросе (http-request). Предоставляя ответы (запросы на обработку), вы можете хранить промежуточную информацию между циклами запроса-ответа либо на стороне клиента (в браузере - файлы cookie, которые содержат определенную информацию для различных веб-сайтов), либо на стороне сервера (в сеансах сервера, в базах данных, файлах сервера для различных пользователей веб-сайта). Надеюсь, эта часть до сих пор понятна.

Java работает полностью на стороне сервера, поэтому любые JavaBeans либо простые JavaBeans (или POJO - простые старые java-объекты), либо EJB (корпоративные java-компоненты - очень сложное решение, доступное на платформе jpg) - работают и живут полностью на стороне сервера и живет в области сеанса или приложения. Другими словами, пользователь может передать некоторые аргументы с помощью методов HTTP GET/POST/PUT/DELETE в ваш сервлет/jsp, которые считывают эти параметры и изменяют информацию о бинах в соответствии с прошедшими & анализируемыми данными от пользователя.

JavaScript по очереди выполняется полностью на уровне клиента. JS может сохранять информацию в куки-файлы браузера (или localstorage - введенные в html5), которые являются в основном ключевыми значениями-парами данных, хранящимися в браузере клиента для определенного сайта, отличающегося его URL-адресом.

JavaScript используется только для сохранения информации во время только быстрого взаимодействия с запросом-ответом, другими словами, вы можете полностью потерять хранилище JS после закрытия пользователем окна своего браузера (заканчивается его работа с сайтом). Хотя серверная информация хранится намного дольше (примерно навсегда) и относится к рабочим сеансам с сайтом.

Итак, с этой точки зрения вы всегда можете создать тонкий клиент (почти без JavaScript), который в конечном итоге полагается на серверную логику и java-компоненты. Но любая небольшая операция с вашим веб-приложением в этом случае с тонким клиентом займет довольно много времени, потому что для этого требуется групповая поездка. Другими словами, приложение будет медленным. Таким образом, чтобы ускорить ваши веб-приложения, вы можете перенести некоторые операции с java-сервера на стороне сервера на клиентский javascript, чтобы они могли выполняться с меньшим запросом сервера. В качестве примера представьте, что вы пишете веб-приложение калькулятора: вы можете создать html-форму и для каждой операции (+ - * /) отправить запрос на сервер (в java-часть) или создать собственный JS-приложение, и каждая операция будет выполняться JavaScript без серверной поездки (в этом случае ваша реклама будет намного быстрее).

Я рекомендую вам прочитать дополнительную информацию о том, как работает HTTP (и REST - архитектура по протоколу HTTP).Например this tutorial.

+0

спасибо, очень проницательный ответ. – user2414932

Смежные вопросы