2016-07-20 25 views
1

Ich schreibe eine Webanwendung mit Dart und Polymer, und wir entschieden uns, das http-Paket, speziell die BrowserClient-Klasse, zu verwenden, um mit unserer Web-API zu sprechen. Beim Erstellen der Anwendung, ich werde mit einer Warnmeldung die folgende Warnmeldung begrüßt:Gibt es Vorteile bei der Verwendung des http-Pakets im Vergleich zur integrierten HttpRequest-Klasse?

WARNUNG: Dart: Spiegel Unterstützung in Dart2Js ist experimentell, und nicht empfohlen. Diese Implementierung von Spiegeln ist unvollständig, und vergrößert oft die Größe des generierten JavaScript-Codes.

Jetzt macht unsere Anwendung nichts mit Reflektion/Spiegeln direkt, aber ich kann aus der Warnmeldung erkennen, dass etwas im http-Paket Spiegel importiert und es verwendet. Ich weiß, dass es eine schlechte Praxis ist, Mirrors für alles zu verwenden, was mit dem Code im Browser zusammenhängt, da das kompilierte JavaScript möglicherweise aufgebläht wird. Ich denke, meine Frage ist, warum sollten wir dies über die HttpRequest-Klasse verwenden, die in die Kernbibliotheken eingebaut ist, wenn das Risiko besteht, dass die kompilierte Ausgabe aufgebläht wird?

Antwort

0

dart:mirrors ist schwer, so zu konfigurieren, dass es nicht für Browseranwendungen Code aufblasen verursacht (so dass es nicht von Bäumen schütteln verletzt), deshalb ist es entmutigt und Sie erhalten diese Warnung von dart2js

Die http Paket verwendet dart:mirrors für einen Trick, der es ermöglicht, etwas Code zwischen Browser und Konsolenanwendungen zu teilen, die "Dart: io" importiert, was normalerweise verhindert wird.

Dieser Trick verursacht keinen Code aufblasen und Sie sind sicher zu verwenden es. Das Dart-Team arbeitet an einer besseren Lösung (konfigurierbare Importe), daher ist dieser Trick nicht mehr notwendig, aber noch nicht vollständig verfügbar.

+0

Okay, das macht Sinn. Ich fand die Schnittstelle für den BrowserClient viel netter, da die Methoden auf HTTP-Verben basieren, daher denke ich, dass wir vorerst mit dem http-Paket bleiben werden. Vielen Dank. –