Feststellen, ob der Browser Javascript oder Ajax in Wicket unterstützt?

Erkennen, ob der Browser Javascript oder Ajax in Wicket unterstützt?

In Wicket sind viele Ajax-Fallback-Komponenten integriert, die sich zu einer normalen Anforderung verschlechtern, wenn Ajax nicht verfügbar ist oder Javascript deaktiviert ist. Einige gute Beispiele sind AjaxFallbackButton, AjaxFallbackLink usw.

Note
Es gibt jedoch einige Komponenten, die das Fallback-Verhalten nicht implementiert haben, z. B. AjaxLazyLoadPanel. Wenn JavaScript deaktiviert ist, wird das Standardbild des Wickets für immer angezeigt.

Lösung

Tatsächlich hat Wicket einen eingebauten Mechanismus, um festzustellen, ob der Browser JavaScript unterstützt. Aber Wicket deaktiviert diese Funktion aus einem bestimmten Grund standardmäßig.

1. Sammeln Sie die Informationen Ihres Browsers

Wenn Sie in der Wicket-Anwendunginit() mitsetGatherExtendedBrowserInfo(true) überschreiben, wird Wicket angewiesen, zusätzliche Informationen von Ihrem Browser zu sammeln.

    protected void init() {
        getRequestCycleSettings().setGatherExtendedBrowserInfo(true);
    }

2. Erkennen Sie JavaScript

Jetzt können Sie feststellen, ob der Browser JavaScript wie folgt unterstützt:

WebClientInfo clientInfo = (WebClientInfo)WebRequestCycle.get().getClientInfo();
if(clientInfo.getProperties().isJavaEnabled()){
  //Javascript is enable
}else{
 //Javascript is enable
}

Erläuterung

Wenn der Benutzer eine Seite anfordert, führt Wicket im Client-Browser einen einfachen JavaScript-Weiterleitungstest durch, um zu überprüfen, ob das JavaScript des Browsers unterstützt wird, und speichert ihn in der Benutzersitzung. Nachdem der Weiterleitungstest ausgeführt wurde, leitet Wicket zur ursprünglich angeforderten Seite weiter. Der gesamte Vorgang ist sehr schnell, es wird jedoch ein leerer Seitenblitz angezeigt. Aus diesem Grund ist Wicket standardmäßig deaktiviert. Das Aufblitzen der schwarzen Seite ist wirklich ärgerlich. Wenn Sie diese Art von Flash-Seite sehen, können Sie davon ausgehen, dass es sich bei dieser Site um eine Phishing-Site handelt.

Wicket Redirect-Testseite ist generisch und in allen Fällen geeignet, aber das Aufblitzen einer leeren Seite ist wirklich inakzeptabel, zumindest für mich.