Pdf.js: buat pdf.js tersedia di cdn

Dibuat pada 17 Nov 2014  ·  29Komentar  ·  Sumber: mozilla/pdf.js

Memiliki pdf.js tersedia di cdn publik dapat menyederhanakan penginstalan dan memperbarui alur kerja dalam beberapa kasus.

cdnjs kemungkinan akan menjadi tuan rumah pdf.js secara gratis jika diminta.

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

Komentar yang paling membantu

: +1: untuk dukungan cdn. Bagus untuk berbagi repro bug dan juga pembuatan prototipe cepat

Semua 29 komentar

tolong jelaskan masalah apa yang akan diperbaiki. "karena proyek lain melakukannya" adalah alasan yang buruk.

Poin yang bagus. Saya memperbarui judul dan deskripsi.

Pustaka pdf.js dapat diinstal dari npm menggunakan npm install pdfjs-dist , melalui bower install pdfjs-dist dan cukup melalui git pull dari pdfjs-dist repo.

Memiliki pdf.js tersedia di cdn publik dapat menyederhanakan penginstalan dan memperbarui alur kerja dalam beberapa kasus.

Kasus apa yang dibahas di sini?

Dalam alur kerja saya, saya tidak menggunakan npm atau bowar atau alat apa pun untuk manajemen ketergantungan front-end dan saya memilih untuk tidak men-vendor salinan perpustakaan mana pun.

Saya malah menautkan ke versi jquery, jqueryui, ckeditor, atau pustaka javascript lain yang saya perlukan. Setiap kali saya perlu "meningkatkan", saya cukup mengubah nomor versi di url.

Saya malah menautkan ke versi yang dihosting cdn

Cacat pada browser dan kebijakan CORS tidak memungkinkan pengguna untuk membuat contoh pekerja web (file pdf.worker.js) yang melakukan penguraian PDF aktual dan secara signifikan meningkatkan kinerja PDF.js.

Ada alternatif: nonaktifkan pekerja. Tapi itu memberikan kinerja di bawah standar dan kami tidak ingin mengiklankannya.

Itu alasan yang bagus. Akan menyenangkan untuk mendapatkan CDN host jika CORS mengizinkannya. Terima kasih!

Saya menemukan ini ketika mencoba menggunakan PDF.js di jsfiddle.
fiddle

Yup, sebagian besar saat menggunakan alat prototyping tanpa ingin menginstal banyak pustaka npm secara lokal

: +1: untuk dukungan cdn. Bagus untuk berbagi repro bug dan juga pembuatan prototipe cepat

Mengapa masih belum ada dukungan CDN sampai November 2015?

Mengapa masih belum ada dukungan CDN sampai November 2015?

AFIAK @cdnjs memublikasikan PDF.js (mis. Https://github.com/cdnjs/cdnjs/pull/5993)

ini bukan inisiatif kontributor repositori ini, jadi kami tidak mengetahui jika ada masalah terkait dengan kode yang dipublikasikan.

Maaf, mungkin itu salah untuk menambahkan URL ke ReadMe untuk menghindari pertanyaan lebih lanjut?

Maaf, mungkin itu salah untuk menambahkan URL ke ReadMe untuk menghindari pertanyaan lebih lanjut?

Hanya ketika kami akan memverifikasi bahwa itu berfungsi tanpa masalah atau risiko keamanan. Lihat kekhawatiran saya di atas di https://github.com/mozilla/pdf.js/issues/5490#issuecomment -63322602

Maaf kalau begitu :)

Kasus penggunaan saya membutuhkan transparansi penuh. Kinerja sepenuhnya berada di bawah. Itulah mengapa saya menggunakan pdf.js karena saya ingin tidak ada yang disembunyikan di server. Semuanya dilakukan pada klien, kode dijamin melakukan apa yang diklaimnya.

Kode saya sendiri kecil, mudah dibaca dan terbuka untuk pemeriksaan. Tidak pernah diperkecil bahkan dalam produksi. Saya mengandalkan kode pihak ketiga yang dijalankan pada klien, dan kepercayaan berasal dari penulis dan komunitas open source. Aplikasi ini open source di git hub dan aplikasi itu sendiri bahkan dihosting di git hub.

Selama aplikasinya tetap seperti ini, kredibilitas saya tidak penting. Namun, jika saya menyertakan pdf.js dalam sumbernya, meskipun tidak dibuat atau dikecilkan, itu sangat menurunkan transparansi. Pengguna harus yakin pada saya bahwa saya tidak menyembunyikan kode berbahaya di hutan pdf.js.

Di sisi lain, jika pdf.js dan semua kode pihak ketiga lainnya, diambil (sebaiknya tidak diminimalkan) dari cdn yang didukung oleh tim dan komunitas, kredibilitas saya sendiri menjadi hampir tidak relevan.

Dengan dibungkus untuk pekerja (lihat # 6753), pustaka inti adalah "dapat dihosting" di CDN, misalnya contoh minimal yang berfungsi dengan baik di jsfiddle dan jsbin:

<!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 menghosting semua paket npm berdasarkan permintaan.

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

Jelas tidak ada sanksi pengelola, tetapi ada jika orang menginginkannya untuk tujuan pembuatan prototipe.

@yurydelendik Itu pasti akan berhasil untuk saya, terima kasih!

@darylteo Terima kasih atas tipnya. Namun tidak setransparan, itulah yang akan menjadi poin utama bagi saya.

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

@darylteo , tim PDF.js selalu berpikir untuk menghentikan pdf.combined.js karena ini bukan tujuan penggunaan perpustakaan. Harap coba untuk tidak menggunakannya jika memungkinkan (dan juga jangan terapkan disableWorker = true, yang diimplikasikan oleh pdf.combined.js).

@yurydelendik terima kasih atas infonya! Saya hanya membangun prototipe untuk mengatasi iOS WKWebView yang tidak merender PDF dengan benar di iframe untuk saat ini tetapi akan mengingatnya.

@camitz , saya penasaran. Bagaimana atau mengapa kode 8 Feb yurydelendik "bekerja untuk [Anda]"? Saya bertanya karena referensi //mozilla.github.io/pdf.js/build/pdf.js, dan saya tidak akan melihatnya sebagai cdn. Dan, itu juga tidak merujuk salinan pdf.js berversi

@yurydelendik (atau siapa pun yang sesuai) - dapatkah masalah ini dibuka kembali hingga salinan pdf.js yang diversi dan dikecilkan pasti tersedia di setidaknya satu cdn terkemuka? Masalah ini dimulai dengan referensi ke cdnjs, dan sesuai situs web mereka, mereka sekarang memiliki cara yang lebih disukai untuk "Meminta lib" melalui template masalah GitHub untuk meminta agar PDF.js ditambahkan ke cdnjs. Akankah pemimpin proyek PDF.js membuat permintaan seperti itu? (Saya akan melakukannya sendiri tetapi saya tidak tahu apakah proyek PDF.js ingin cdnjs menggunakan pdf.js atau pdfjs-dist. Selain itu, mungkin akan lebih baik jika proyek PDF.js sendiri membuat versi yang diperkecil dari kodenya yang menuju ke cdnjs.)

Menurut saya, kasus penggunaan camitz yang dia bagikan pada 30 Desember sangat bagus dan masih berlaku untuk banyak orang (termasuk saya). Seperti camitz, saya ingin meminimalkan jumlah kepercayaan yang harus diberikan pengguna kepada saya, dan menggunakan salinan perpustakaan yang ada di CDN pasti membantu.

@ jon-freed Ada https://npmcdn.com/pdfjs-dist yang up-to-date. Untuk cdnjs ada permintaan tarik https://github.com/cdnjs/cdnjs/pull/5993. Saya rasa tidak ada lagi yang bisa kita lakukan saat ini; terutama situs web npmcdn bagus karena menggunakan paket NPM kami dan oleh karena itu selalu mutakhir.

@ jon-freed berikut adalah contoh jsfiddle yang menggunakan npmcdn https://jsfiddle.net/y3rsLwwp/5/

@timvandermeij , @yurydelendik : Terima kasih atas informasinya! Itu membantu memperjelas (bagi saya, bagaimanapun) apa yang dinyatakan darylteo pada 17 Februari

hmmmm ... pertahankan CDNJS di sini, saya akan mengerjakannya sekarang.

@PeterDHello Luar

Tidak masalah. Sekadar informasi, berdasarkan arsitektur, npmcdn dapat memperbarui sedikit lebih cepat, tetapi CDNJS akan memiliki kinerja yang lebih baik untuk lingkungan produksi, dan CDNJS juga menyediakan file yang diperkecil dan file peta tambahan.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

timvandermeij picture timvandermeij  ·  4Komentar

anggikolo11 picture anggikolo11  ·  3Komentar

aaronshaf picture aaronshaf  ·  3Komentar

smit-modi picture smit-modi  ·  3Komentar

xingxiaoyiyio picture xingxiaoyiyio  ·  3Komentar