2009-12-19 1 views
0

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

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

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

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

ответ

0

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

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

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

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

+0

О AJAX: Я думаю, что наше приложение является отличным кандидатом на его использование. Мы не просто прыгаем на победившей стороне, чтобы избежать перезагрузки страницы :) –

1

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

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

+0

Мы определенно принимаем это во внимание. Одна вещь, которая нам нравится на ледяных поверхностях, - AJAX Push. –

0

Я использую 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> 

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

0

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

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

0

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

Посмотрите его.