Domino 9 und frühere Versionen > ND8: Entwicklung - XPages

Partial refresh aktualisiert auch andere Elemente

<< < (4/5) > >>

Thomas Schulte:
Hallo Ulrich. Ich denke das die wenigen Rückmeldungen hier etwas ganz anderes zeigen. Nämlich, das X-PAGES noch nicht wirklich in der Welt da draussen angekommen sind.

Ein ganz anderes Thema ist es, das IBM das Problem noch nicht aufgefallen ist. Aber da ist es eher so etwas wie "Tests! Welche Tests?" ... Ich denke, und das hat sich in vielen anderen Bereichen ja auch schon gezeigt, das IBM, wie viele andere auch sich die Tests bis ins Detail bei neuen Funktionen einfach spart.
Wenn ich so zurückblicke, wieviele der in den letzten zehn Jahren neu eingebaute Funktionen im Domino Server oder dem Notes Client, oder für den Designer sich als nicht ausgereifte, oder nicht zu Ende Programmierte Rohrkrepierer erwiesen haben, dann reiht sich XPages da an manchen Stellen ziemlich nahtlos ein.

eknori (retired):
Das bei der Komplexität der Software Bugs unvermeidlich sind, ist verständlich. Das man nicht jeden Aspekt einer Funktion testen kann ist sicher eine Sache des Budgets.
Als Unternehmer, Hersteller und Abkassierer für eine Software und den damit zusammenhängenden Support wäre es mir aber oberpeinlich, wenn ein Problem gemeldet wird und das Problem nicht von meinen eigenen Mitarbeitern binnen kurzer Zeit verifiziert und gefixed wird.
Und wenn dann noch ein Workaround aus der Community kommt statt aus den eigenen Reihen ... :-X

Wir erleben das hier tagtäglich, daß Alles wunderbar in "Hello World Size" Applikationen funktioniert. Hat die Anwendung aber einen gewissen Umfang, dann gibt es massive Probleme. Wir suchen uns hier dann mit der kompletten Mannschaft wund und blöde, um überhaupt erst einmal die Ursache zu finden. Von einer LÖSUNG mal ganz zu schweigen.

m3:
Bei allem Verstaendnis fuer Euren Aerger ...

Der PMR wurde entgegengenommen, das Problem ist reproduzierbar, ein SPR wurde erstellt und ein Entwickler beschaeftigt sich mit dem Problem. Das ist doch eh wunderbar und entspricht dem dafuer vorgesehenen Prozess.
Dass IBM kein kleines Startup mit kurzen Loesungszeiten ist, ist uns doch allen klar, oder?

Und wenn es ein Fehler ist, wird er gefixed, sag ich mal (ich glaub auch an das Gute im Menschen).

Sven Hasselbach:
Hier eine Version des Workarounds, der noch die Mehrfach-Berechnung abfängt. Es fehlt eigentlich nur noch die Überprüfung, ob der Refresh auf eine elterliche Komponente ausgeführt wurde.

Den Code in z.B. die Werte-Berechnung des Repeat Controls einbauen, die bisherige Berechnung in die Funktion "calculate" übertragen.


--- Code: ---/*****
 *** Workaround fuer Refresh-Problem und Mehrfach-Berechnung
 ***
 *****/
 
/*** Der eigentliche Code in die Funktion "calculate" einfügen ***/
function calculate(){
var data:java.util.Vector = new java.util.Vector();
data.add(java.lang.System.currentTimeMillis());
return data;
}

/*** ab hier gehts los ***/
var clientId = getClientId( this.id );
var data = null;

/*** Bisher keine Berechnung **/
if( viewScope.containsKey("fixData-" + clientId ) === false){
data = calculate();
viewScope.put( "fixData-" + clientId, data );
    return data;
}

/*** Element wurde nicht refresht ***/
if( com.ibm.xsp.ajax.AjaxUtil.isAjaxPartialRefresh(facesContext) === true ){
   var rId = com.ibm.xsp.ajax.AjaxUtil.getAjaxComponentId( facesContext  );
   if( rId !== clientId )
return viewScope.get( "fixData-" + clientId );
}


/*** Mehrfach-Berechnung abfangen ***/
if( requestScope.containsKey("fixData-" + clientId ) == true ){
value = viewScope.get( "fixData-" + clientId );
}else{
value = calculate();
viewScope.put( "fixData-" + clientId, value );
requestScope.put("fixData-" + clientId , true );
}

value

--- Ende Code ---

Sven

Sven Hasselbach:
@m3:
So einfach ist es in meinen Augen leider nicht.

Erstens handelt es sich hierbei nicht um einen, sondern um zwei Bugs (Der Eine ist die Ausführung bei Partial Refreshs, der Andere ist die Mehrfachberechnung).

Zweitens sind das nicht "simple" Bugs (wie z.B. sowas hier: http://hasselba.ch/blog/?p=563),  die natürlich immer mal wieder passieren. Sondern es wurden hier extreme Bugs vorgelegt, die an der gesamten Qualität des Produktes "XPage" zweifeln lassen.

Drittens ist der Vergleich mit den "kleinen Startups" aber genau das Problem, denn warum sollte ich ein Produkt wie XPages einsetzen, wenn es Alternativen am Markt gibt? Siehe dazu die Ausführungen von David Marko: http://blog.tcl-digitrade.com/blogs/tcl-digitrade-blog.nsf/dx/21.02.2012114147DMAEK8.htm.

Und Viertens: Wenn die IBM den Code nicht im Griff hat, warum legt sie Ihn dann nicht einfach für die Community offen? Es würde das Verständnis für die Arbeitsweise von XPages deutlich erhöhen, und auch würde sich die Entwicklung von AddOns (z.B. von OSGi-Komponenten) deutlich einfacher gestallten.

Ich persönlich mag XPages, ich mache jetzt schon eine ganze Weile nichts anderes mehr, aber wenn ich mir anschaue, was die IBM mit dem Produkt macht, könnte ich heulen...

Just my two cents
Sven

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln