Pdf.js: pdf.js auf einer cdn verfügbar machen

Erstellt am 17. Nov. 2014  ·  29Kommentare  ·  Quelle: mozilla/pdf.js

Wenn pdf.js auf einer öffentlichen CD verfügbar ist, kann dies in einigen Fällen die Installation vereinfachen und Workflows aktualisieren.

cdnjs wird wahrscheinlich pdf.js kostenlos hosten, wenn sie darum gebeten wurden.

https://github.com/cdnjs/cdnjs/issues/3824

Hilfreichster Kommentar

: +1: für CDN-Unterstützung. Hervorragend geeignet zum Teilen von Bug-Repros und zum schnellen Prototyping

Alle 29 Kommentare

Bitte erläutern Sie, welches Problem dadurch behoben wird. "weil andere Projekte es tun" ist ein schlechter Grund.

Guter Punkt. Ich habe den Titel und die Beschreibung aktualisiert.

Die pdf.js-Bibliothek kann von npm aus mit npm install pdfjs-dist , über bower install pdfjs-dist und einfach über git pull von pdfjs-dist repo installiert werden.

Wenn pdf.js auf einer öffentlichen CD verfügbar ist, kann dies in einigen Fällen die Installation vereinfachen und Workflows aktualisieren.

Welcher Fall wird hier diskutiert?

In meinem Workflow verwende ich weder npm noch bowar oder ein Tool für das Front-End-Abhängigkeitsmanagement, und ich bevorzuge es, keine Kopien einer Bibliothek zu liefern.

Ich verlinke stattdessen zu einer von cdn gehosteten Version von jquery, jqueryui, ckeditor oder einer anderen von mir benötigten Javascript-Bibliothek. Wann immer ich "upgraden" muss, ändere ich einfach die Versionsnummer in der URL.

Ich verlinke stattdessen zu einer von CDN gehosteten Version

Fehler in Browsern und CORS-Richtlinien ermöglichen es Benutzern nicht, Web Worker (pdf.worker.js-Datei) zu instanziieren, die eine tatsächliche PDF-Analyse durchführen und die Leistung von PDF.js erheblich verbessern.

Es gibt eine Alternative: Deaktivieren Sie den Worker. Aber das liefert eine unterdurchschnittliche Leistung, und wir wollen das nicht bewerben.

Das ist ein guter Grund. Es wäre schön, wenn CDN gehostet würde, wenn CORS dies jemals zulässt. Vielen Dank!

Ich bin darauf gestoßen, als ich versucht habe, PDF.js in einer jsfiddle zu verwenden.
fiddle

Ja, meistens, wenn Sie ein Prototyping-Tool verwenden, ohne eine Reihe von npm-Bibliotheken lokal installieren zu wollen

: +1: für CDN-Unterstützung. Hervorragend geeignet zum Teilen von Bug-Repros und zum schnellen Prototyping

Warum gibt es ab November 2015 noch keine CDN-Unterstützung?

Warum gibt es ab November 2015 noch keine CDN-Unterstützung?

AFIAK @cdnjs veröffentlicht PDF.js (z. B. https://github.com/cdnjs/cdnjs/pull/5993)

Es handelt sich nicht um diese Initiative für Repository-Mitwirkende, daher ist uns nicht bekannt, ob Probleme im Zusammenhang mit dem veröffentlichten Code vorliegen.

Entschuldigung, vielleicht ist es umgekehrt, die URL zur ReadMe hinzuzufügen, um weitere Fragen zu vermeiden?

Entschuldigung, vielleicht ist es umgekehrt, die URL zur ReadMe hinzuzufügen, um weitere Fragen zu vermeiden?

Nur wenn wir überprüfen, ob es ohne Probleme oder Sicherheitsrisiken funktioniert. Siehe mein Anliegen oben unter https://github.com/mozilla/pdf.js/issues/5490#issuecomment -63322602

Dann bitte ich um Entschuldigung :)

Mein Anwendungsfall erfordert vollständige Transparenz. Die Leistung ist völlig untergeordnet. Deshalb benutze ich pdf.js, weil ich nichts auf einem Server verstecken möchte. Alles wird auf dem Client erledigt, der Code wird garantiert das tun, was er behauptet.

Mein eigener Code ist klein, leicht zu lesen und kann überprüft werden. Selbst in der Produktion nie minimiert. Ich verlasse mich auf Code von Drittanbietern, der auf dem Client ausgeführt wird, und das Vertrauen kommt von den Autoren und der Open Source-Community. Die App ist Open Source auf Git Hub und die App selbst wird sogar auf Git Hub gehostet.

Solange die App so bleibt, ist meine Glaubwürdigkeit nicht wichtig. Wenn ich jedoch pdf.js in die Quelle einbinde, auch wenn es nicht erstellt oder minimiert ist, verschlechtert dies die Transparenz erheblich. Der Benutzer muss mir vertrauen, dass ich keinen schädlichen Code im Dschungel von pdf.js versteckt habe.

Wenn andererseits pdf.js und alle anderen Codes von Drittanbietern von einer vom Team und der Community empfohlenen CDN abgerufen (vorzugsweise nicht minimiert) wurden, ist meine eigene Glaubwürdigkeit nahezu irrelevant.

Mit für den Worker verpackt (siehe # 6753) ist die Kernbibliothek auf CDN "hostbar", z. B. ein minimales Beispiel, das auf jsfiddle und jsbin einwandfrei funktioniert:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>Minimal PDF.js example</title>
  <script src="//mozilla.github.io/pdf.js/build/pdf.js"></script>
</head>
<body>
  <script>
    var loadingTask = PDFJS.getDocument('//cdn.mozilla.net/pdfjs/tracemonkey.pdf');
    loadingTask.promise.then(function (pdfDocument)  { 
      console.log('Num pages: ' + pdfDocument.numPages);
    }, function (reason) {
      console.error('Loading Error: ' + reason);
    })
  </script>
</body>
</html>

NPM CDN hostet alle npm-Pakete auf Anfrage.

https://npmcdn.com/[email protected]/build/pdf.combined.js

Offensichtlich nicht vom Betreuer sanktioniert, aber es ist da, wenn die Leute es für Prototyping-Zwecke wollen.

@yurydelendik Das wird definitiv bei mir funktionieren, danke!

@darylteo Danke für den Tipp. Nicht so transparent, das ist der springende Punkt für mich.

https://npmcdn.com/[email protected]/build/pdf.combined.js

@darylteo , das Team von PDF.js denkt immer daran, pdf.combined.js zu verwerfen, da es nicht für die Verwendung der Bibliothek vorgesehen ist. Bitte versuchen Sie es nicht zu verwenden, wenn es möglich ist (und wenden Sie disableWorker = true nicht an, was pdf.combined.js impliziert).

@yurydelendik danke für die Info! Ich baue gerade einen Prototyp, um iOS WKWebView zu umgehen, der PDFs in iframes vorerst nicht richtig rendert, werde dies aber berücksichtigen.

@ Camitz , ich bin neugierig. Wie oder warum hat yurydelendiks Code vom 8. Februar "für [Sie] funktioniert"? Ich frage, weil es auf //mozilla.github.io/pdf.js/build/pdf.js verweist, und ich würde das im Allgemeinen nicht als CDN ansehen. Außerdem wird nicht auf eine versionierte Kopie von pdf.js verwiesen

@yurydelendik (oder wer auch immer angemessen ist) - kann diese Ausgabe bitte erneut geöffnet werden, bis versionierte und verkleinerte Kopien von pdf.js definitiv auf mindestens einer seriösen CD verfügbar sind? Dieses Problem begann mit einem Verweis auf cdnjs. Gemäß ihrer Website haben sie jetzt eine bevorzugte Möglichkeit, eine Bibliothek über eine GitHub- Problemvorlage anzufordern, um anzufordern, dass PDF.js zu cdnjs hinzugefügt wird. Würde ein Projektleiter von PDF.j bitte eine solche Anfrage stellen? (Ich würde es selbst tun, aber ich weiß nicht, ob das PDF.js-Projekt möchte, dass cdnjs pdf.js oder pdfjs-dist verwendet. Außerdem wäre es wahrscheinlich am besten, wenn das PDF.js-Projekt selbst eine minimierte Version von erstellt sein Code, der zu cdnjs geht.)

Ich denke, dass der Anwendungsfall von camitz, den er am 30. Dezember geteilt hat, sehr gut ist und immer noch für viele Menschen (einschließlich mich selbst) gilt. Wie bei Camitz möchte ich das Vertrauen meiner Benutzer in mich minimieren, und die Verwendung von Kopien von Bibliotheken, die sich auf einem CDN befinden, hilft dabei definitiv.

@ jon-freed Es gibt https://npmcdn.com/pdfjs-dist, das auf dem neuesten Stand ist. Für cdnjs gibt es die Pull-Anfrage https://github.com/cdnjs/cdnjs/pull/5993. Ich glaube nicht, dass wir derzeit mehr tun können. Besonders die npmcdn-Website ist schön, weil sie unser NPM-Paket verwendet und daher immer auf dem neuesten Stand ist.

@ jon-freed hier ist ein jsfiddle-Beispiel, das npmcdn https://jsfiddle.net/y3rsLwwp/5/ verwendet.

@timvandermeij , @yurydelendik : Danke für diese Information! Das hilft (für mich jedenfalls) zu klären, was Darylteo am 17. Februar gesagt hat

hmmmm ... CDNJS hier pflegen, ich werde jetzt daran arbeiten.

@ PeterDaveHello Super ! Gut, dass PDF.js jetzt auf zwei CDNs (cdnjs und npmcdn) gehostet wird.

Kein Problem. Nur zu Ihrer Information: Aufgrund der Architektur wird npmcdn möglicherweise etwas schneller aktualisiert, aber CDNJS bietet eine bessere Leistung für die Produktionsumgebung, und CDNJS bietet auch minimierte Dateien und zusätzliche Kartendateien.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen