Java Ajax WebApp - Советы и подводные камни? - PullRequest
0 голосов
/ 20 декабря 2009

Сотрудник и я начали техническую спецификацию проекта веб-приложения, над которым мы будем работать вместе в свободное время. Мы (в основном) решили использовать: Eclipse для Java EE , ICEfaces (что означает JSF ), Tomcat , Hibernate , MySQL . На работе мы используем: IntelliJ IDEA , Struts , JSP , WebLogic , JDO и Oracle . Единственное общее решение, которое мы будем использовать, это Spring Framework .

Причина, по которой мы используем то, чем мы являемся, заключается в том, что: (1) наше приложение будет в значительной степени полагаться на Ajax (2) мы хотим использовать только программное обеспечение с открытым исходным кодом, которое позволяет коммерческое использование ( 3) нам нужен опыт обучения / резюме строителей.

Итак, мой вопрос заключается в следующем: исходя из того, что мы используем и знаем из работы и что мы будем использовать в этом побочном проекте, есть ли какие-либо очевидные подводные камни, советы, хитрости или советы, которые было бы полезно рассмотреть до мы начинаем? Также приветствуются предложения по созданию хороших плагинов Eclipse (у меня до сих пор есть интеграция с ICEfaces).

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

Ответы [ 5 ]

1 голос
/ 20 декабря 2009

Вы говорите, что ваше приложение будет сильно зависеть от AJAX. Обратите внимание, что при каждом взаимодействии AJAX вы генерируете сообщение браузера / сервера, а потенциально генерирует намного больший трафик браузера / сервера. Это повлияет на ваш сервер и нагрузку на сеть.

AJAX может быть соблазнительным - например, динамически заполняющиеся выпадающие списки a la Google Suggest, обновление фрагментов страницы и т. д. Но следите за влиянием на вашу сеть и ваши серверы.

0 голосов
/ 21 декабря 2009

Я бы предложил вам использовать Google Web Toolkit. Я использовал это некоторое время и думаю, что это интересный подход. Вы можете написать java, который затем будет скомпилирован + оптимизирован для работы как javascript и html.

Посмотри.

0 голосов
/ 20 декабря 2009

Ajax4JSF (a4j) может иметь некоторые подводные камни, но я считаю, что это самый простой и быстрый для реализации.

Не уверен, насколько он совместим с Icefaces.

0 голосов
/ 20 декабря 2009

Я использую Struts2 и для AJAX я просто создаю другое действие / соответствующий JSP. Как правило, я использую jQuery и просто выполняю получение URL-адреса с любыми дополнительными параметрами строки запроса, что в итоге выглядит примерно так:

Фрагмент JavaScript из JSP, требующий AJAX

function getNextPage(currentPage) {
    var nextPage = currentPage + 1;
    var url = "ajaxGetNextPage.action?page=" + nextPage;
    $.ajax({
       type: 'POST',
       url: url,
       success: function(text){
           $('#searchResults').html(text);
       }
    });
}

<input type="button" value="NextPage" onclick="getNextPage($('#currentPage').attr('value'))"/>

Действие

public class NextPageAction extends ActionSupport {
    private int page -1; // with getter/setter
    private EntityDao dao; // whatever your Hibernate DAO impl is...getters/setters
    private List<Entity> entities; // whatever the entity POJO is    

    @Override
    public String execute() throws Exception {
        if(page > 0)
             entities = dao.findPagedEntities(page);
        return SUCCESS;
    }
}

Страница JSP (теги для импорта стоек)

<input type="hidden" id="currentPage" value="<s:property value="page"/>"/>
<s:iterator value="entities">
      <div><s:property/></div>
</s:iterator>

Это просто пример с неполными фрагментами, но вы должны понять суть этого. Если вы используете декораторы / сетку сайта, убедитесь, что вы исключили все пути ajax .

0 голосов
/ 20 декабря 2009

Мое предложение - создать что-то простое, а затем заняться этим. Когда вы пытаетесь быть слишком оптимистичным [без хороших приоритетов] в определении проекта, вы в значительной степени пишете, что он провален. Начните с простого, с дизайна, который масштабируется и масштабируется до того, кем вы хотите, чтобы он стал.

Дополнительно используйте подходящий инструмент, когда вам это нужно. Если вы не пытаетесь создать полнофункциональное корпоративное приложение, не используйте EJB.

Я понятия не имею, откуда взялась эта "магия Аякса", но ее нужно прекратить. AJAX - это способ передачи небольшой информации между клиентом и сервером, чтобы запрашивать и отправлять информацию асинхронно. [Т.е. нет необходимости в перезагрузке страницы для получения часто обновляемых данных]

Мое предложение: добавить в AJAX позже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...