Как в GWT сократить объем кода?

Тема в разделе "WASM.HEAP", создана пользователем osrootd, 28 янв 2009.

  1. osrootd

    osrootd New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2008
    Сообщения:
    1.086
    Вот есть такое:
    Код (Text):
    1. // Описательная часть, виджеты.
    2.  
    3. final Vector ComponentVector = new Vector ();
    4.        
    5.       Button b = new Button ("Продолжить >>");
    6.       Label TitleLabel = new Label ("Вы не авторизованы. Введите Имя и пароль.");
    7.       Label LoginLabel = new Label ("Имя");
    8.       Label PasswordLabel = new Label ("Пароль");
    9.       final TextBox LoginInput = new TextBox();
    10.      final  PasswordTextBox PasswordInput = new PasswordTextBox();
    11.       ComponentVector.clear();
    12.      
    13.     final  RootPanel db = RootPanel.get();
    14.      ComponentVector.add(TitleLabel);
    15.     ComponentVector.add(LoginLabel);
    16.     ComponentVector.add(LoginInput);
    17.      ComponentVector.add(PasswordLabel);
    18.      ComponentVector.add(PasswordInput);
    19.     ComponentVector.add(b);
    20.    
    21.    
    22.     for ( int i=0; i<ComponentVector.size(); i++){
    23.        db.add((Widget)ComponentVector.get(i));
    24.     }
    25.    
    26.          final AsyncCallback login_callback = new AsyncCallback() {
    27.                 public void onFailure(Throwable caught) {
    28.                 }
    29.                 public void onSuccess(Object result) {
    30.                     for ( int i=0; i<ComponentVector.size(); i++){
    31.       Widget w = (Widget)ComponentVector.get(i);
    32.       w.removeFromParent();
    33.     }
    34.            db.add(new Label("Угу, авторизован."));
    35.                 }
    36.             };
    37.      
    38.     b.addClickListener(new ClickListener() {
    39.  
    40.             public void onClick(Widget sender) {
    41.                 getRPCService().tryAuthorize(LoginInput.getText(),PasswordInput.getText(),login_callback);
    42.                
    43.             }
    44.         });
    45.    
    46.    return ComponentVector;
    47.      
    48.     }
    GWT (Google Compiler) и понятие оптимизации - это огонь и вода. На выходе этот небольшой код генерирует приложение аж 48 килобайт. Причем дело не в виджетах, а в алгоритме их скрытия/показа. Просто набор виджетов дает 6 килобайт на выходе.
    Может компилер глючный? Кто писал в GWT, подскажите как уменьшить прогу.
     
  2. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    osrootd

    Хыхыхы, сдается мне ты под MFC не писал)))
     
  3. osrootd

    osrootd New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2008
    Сообщения:
    1.086
    Для GWT это очень много.
    Не у всех пользователей есть возможность запустить такую большую прогу.
    Кто писал под GWT знают о глюках с объемом, но как справиться - не знают.
     
  4. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    osrootd
    А рантайм, а статические либы?
     
  5. osrootd

    osrootd New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2008
    Сообщения:
    1.086
    Отвечает команда разработчиков Google:

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