HTML5 Web Worker hängen normalerweise von externen Skripten ab, die importScripts()
verwenden. Wohin sollten solche Skripte unter Rails 4 gehen, damit sie wie in der Assets-Pipeline normal vereinheitlicht werden und dennoch korrekt funktionieren?
Beim Arbeiten mit der Asset-Pipeline gibt es einige Probleme, die behoben werden müssen:
vendor/assets
stehen, werden standardmäßig nicht von der Asset-Pipeline verarbeitet (was in Rails 3 nicht der Fall war). app/assets
platziert werden, müssen sie in application.js
enthalten sein, damit sie verarbeitet werden können. Worker-Dateien sollten jedoch nicht in der kombinierten Ausgabe enthalten sein (d. H.% Co_de%). application-[digest].js
. Wie würden wir den Pfad herausfinden? (Ich habe new Worker('myWorker.js')
versucht, aber es hat nicht funktioniert). asset_path
auf andere Dateien anhand ihres Namens verweisen. Wie würden wir den Pfad zum Laden herausfinden? Wenn Sie von Google hierher kommen, können Sie Inline-Mitarbeiter verwenden.
Inline-Arbeiter
Was ist, wenn Sie Ihr Worker-Skript im Handumdrehen erstellen oder eine eigenständige Seite erstellen möchten, ohne separate Worker-Dateien erstellen zu müssen? Mit Blob () können Sie Ihren Worker in dieselbe HTML-Datei wie Ihre Hauptlogik "inline" einfügen, indem Sie einen URL-Handle für den Worker-Code als String erstellen:
%Vor% Gemäß der Konvention (die nicht so populär ist) sollte sie zu vendor/assets
gehen. Um genau zu sein:
app/
alles, was genau an diese bestimmte App gebunden ist lib/
Der gesamte Code, der von Ihnen geschrieben wurde, aber nicht an Ihre Anwendung gebunden ist (kann oder wird extrahiert, um einen Edelstein zu trennen) vendor/
aller Fremdanbietercode Tags und Links asset-pipeline ruby-on-rails-4