tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
421
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    pcAlko pcAlko ist offline Rookie
    Registriert seit
    Jun 2007
    Beiträge
    7
    Hallo Community!

    Habe mir einen Java Client mit SWT Components geschrieben der auch die Möglichkeit bietet mit einem Browser ins Internet zu gehen.
    Dieser Client läuft auf einer ziemlich schwachen Plattform und das Non-Stop Tag für Tag.

    So weit so gut ...
    Jedoch um so mehr webseiten ich aufrufe, um so mehr RAM wird verbraten und nicht mehr abgebaut.

    Ich hab jetzt versucht dass wenn ich im Client auf eine andere Seite ohne Browser gehe (StackLayout) das ich die URL im browser auf about:blank setze.
    Hat aber nichts geholfen. Der Browser behält seinen RAM.

    Jetzt wollte ich beim verlassen der Seite den Browser mit dispose() zerstören
    und wenn ich wieder zurück gehe auf die Seite einen neuen Browser erzeugen.
    Jedoch beim zurück gehen wird der Browser nur mehr ganz klein genneriert.

    PHP-Code:
    private Composite m_oComp;
    private 
    Browser m_oBrowser;

    public 
    void createSide(Composite composite)
    {
        
    m_oComp=  new Composite(compositeSWT.NONE);
        
    m_oComp.setLayout(new FillLayout());
        
    m_oBrowser= new Browser(m_oCompSWT.NONE);
        
    m_oBrowser.setUrl("http://www.google.com");

    das Composite welches herein kommt hat die Grösse 900x600
    und der Browser wird mir korrekt angezeigt.

    PHP-Code:
    public void destroyBrowser()
    {
        
    m_oBrowser.dispose();
        
    m_oBrowsernull;

    PHP-Code:
    public void newBrowser()
    {
        
    m_oBrowser= new Browser(m_oCompSWT.NONE);
        
    m_oBrowser.setUrl("http://www.google.com");
        
    m_oComp.pack();

    jetzt ist der Browser aber nur mehr so 50x50
    obwohl die Seite noch 900x600 hat

    mach ich da irgendetwas falsch?

    schon mal Danke für eure Hilfe!
    pcAlko
    Geändert von pcAlko (02.02.12 um 18:55 Uhr)
     

  2. #2
    genodeftest genodeftest ist offline Mitglied Brillant
    Registriert seit
    Jun 2009
    Beiträge
    870
    Hi
    Nutze doch bitte Java-Codetags (wie in meiner Signatur zu sehen ist).
    Das Zerstören des Browsers dürfte nicht sinnvoll sein. Stattdessen solltest du darauf achten, dass du eine aktuelle Version von SWT mit aktuellem Browser (z.B. XulRunner 10.0) nutzt. In älteren Versionen von XulRunner (bis ca. Version 7) war ein massives Memory Leak enthalten. Um Speicher frei zu machen solltest du besser System.gc() aufrufen, wenn möglich.
     
    Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.
    ___________
    Ubuntu Bug #1: Microsoft has a majority market share
    Casecon: Projekt leiser Käse

  3. #3
    pcAlko pcAlko ist offline Rookie
    Registriert seit
    Jun 2007
    Beiträge
    7
    Hi genodeftest.

    Danke für Deine schnelle Antwort.

    Das mit dem XulRunner ist ein Problem!
    auf meinem Ubuntu ist die Version 1.9.2.24
    auf dem alix-board, welches ich zuvor mit kleiner Plattform beschrieben habe, läuft ein Debian-Squeeze und dort ist gar kein xulranner
    hab dort den epiphany-browser installiert
    weil ich dachte SWT nimmt eh den Browser welcher installiert ist.
    komischer weise rennt dort aber der SWT-Browser ordnungs gemäß
    Im Repository wäre aber auch nur die Version 1.9.1

    hab's mal mit
    Code java:
    1
    
    System.gc();
    probiert. Ein bisschen besser ist es, aber auch nicht die Welt!
    Aber danke für Deinen Tip
    muss ich wohl damit leben
    oder diesen mal selbst compilieren

    Zitat Zitat von genodeftest Beitrag anzeigen
    Nutze doch bitte Java-Codetags
    wusste ich nicht
    im Applet gibt's eben nur diesen für PHP
    bin ja auch ein Grünschnabel
    wie ja bei jedem meiner post's vermerkt ist
    (ok, nein, jetzt mit 5 Beiträgen bin ich ja schon ein Rookie)

    DANKE,
    pcAlko
    Geändert von pcAlko (02.02.12 um 20:16 Uhr)
     

  4. #4
    genodeftest genodeftest ist offline Mitglied Brillant
    Registriert seit
    Jun 2009
    Beiträge
    870
    Einfach den Xulrunner selber kompilieren, ist nicht so schwer. Anleitung dazu gibts z.B. unter http://wiki.ubuntuusers.de/Programme...en?redirect=no
    SWT braucht entweder XulRunner oder WebKit (seit SWT Version 3.6), um den internen Browser darzustellen. siehe auch http://www.eclipse.org/swt/faq.php#browserlinux
    Wenn du SWT >= 3.6 verwendest, könntest du SWT anweisen, WebKit zu verwenden. Wie das geht, steht auch in dieser FAQ. XulRunner 1.9.2.24 dürfte noch das Memory Leak haben.
     
    Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.
    ___________
    Ubuntu Bug #1: Microsoft has a majority market share
    Casecon: Projekt leiser Käse

Ähnliche Themen

  1. Ausgabe in eine Zeile und wieder aufbauen?
    Von lordfritte im Forum PHP
    Antworten: 2
    Letzter Beitrag: 22.04.06, 19:31
  2. Antworten: 1
    Letzter Beitrag: 04.04.06, 20:06
  3. Antworten: 4
    Letzter Beitrag: 27.01.06, 12:42
  4. Mal wieder css und andere Browser
    Von visionsign im Forum CSS
    Antworten: 0
    Letzter Beitrag: 10.08.05, 11:34
  5. Session zerstören
    Von Fxice im Forum PHP
    Antworten: 1
    Letzter Beitrag: 27.03.05, 19:10