Pdf.js: جعل pdf.js متاحًا على cdn

تم إنشاؤها على ١٧ نوفمبر ٢٠١٤  ·  29تعليقات  ·  مصدر: mozilla/pdf.js

يمكن أن يؤدي توفر pdf.js على cdn عام إلى تبسيط التثبيت وتحديث سير العمل في بعض الحالات.

من المحتمل أن يستضيف cdnjs pdf.js مجانًا إذا طُلب منهم ذلك.

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

التعليق الأكثر فائدة

: +1: لدعم cdn. عظيم لمشاركة repros الأخطاء وكذلك النماذج الأولية السريعة

ال 29 كومينتر

يرجى توضيح المشكلة التي سيتم حلها. "لأن المشاريع الأخرى تفعل ذلك" هو سبب سيء.

نقطة جيدة. لقد قمت بتحديث العنوان والوصف.

مكتبة pdf.js قابلة للتثبيت من npm باستخدام npm install pdfjs-dist ، عبر bower install pdfjs-dist وببساطة عبر git pull من pdfjs-dist repo.

يمكن أن يؤدي توفر pdf.js على cdn عام إلى تبسيط التثبيت وتحديث سير العمل في بعض الحالات.

ما القضية التي تمت مناقشتها هنا؟

في سير العمل الخاص بي ، لا أستخدم npm أو bowar أو أي أداة لإدارة التبعية للواجهة الأمامية وأنا أفضل عدم بيع نسخ من أي مكتبة.

بدلاً من ذلك ، أقوم بالربط بنسخة مستضافة من cdn من jquery أو jqueryui أو ckeditor أو أي مكتبة جافا سكريبت أخرى أحتاجها. كلما احتجت إلى "الترقية" ، أقوم ببساطة بتغيير رقم الإصدار في عنوان url.

بدلاً من ذلك ، أقوم بالربط بإصدار مستضاف على cdn

لا تسمح العيوب الموجودة في المستعرضات وسياسات CORS للمستخدمين بإنشاء مثيل لعامل الويب (ملف pdf.worker.js) الذي يقوم بإجراء تحليل حقيقي لملف PDF ويحسن أداء ملف PDF.js.

هناك بديل: تعطيل العامل. لكن هذا يوفر أداءً دون المستوى ولا نريد الإعلان عن ذلك.

هذا سبب وجيه. سيكون من الجيد الحصول على CDN مستضافًا إذا سمحت CORS بذلك. شكر!

لقد عثرت على هذا عند محاولة استخدام PDF.js في jsfiddle.
fiddle

نعم ، غالبًا عند استخدام أداة النماذج الأولية دون الرغبة في تثبيت مجموعة من مكتبات npm محليًا

: +1: لدعم cdn. عظيم لمشاركة repros الأخطاء وكذلك النماذج الأولية السريعة

لماذا لا يوجد حتى الآن دعم CDN حتى نوفمبر 2015؟

لماذا لا يوجد حتى الآن دعم CDN حتى نوفمبر 2015؟

تقوم AFIAKcdnjs بنشر PDF.js (على سبيل المثال https://github.com/cdnjs/cdnjs/pull/5993)

إنها ليست مبادرة المساهمين في المستودع ، لذلك لا نعلم ما إذا كانت هناك أية مشكلات موجودة فيما يتعلق بالكود المنشور.

عذرًا ، ربما يكون من الخطأ إضافة عنوان URL إلى الملف التمهيدي لتجنب المزيد من الأسئلة؟

عذرًا ، ربما يكون من الخطأ إضافة عنوان URL إلى الملف التمهيدي لتجنب المزيد من الأسئلة؟

فقط عندما نتحقق من أنه يعمل دون مشاكل أو مخاطر أمنية. انظر قلقي أعلاه على https://github.com/mozilla/pdf.js/issues/5490#issuecomment -63322602

آسف إذن :)

تتطلب حالة الاستخدام الخاصة بي شفافية كاملة. الأداء خاضع تمامًا. لهذا السبب أستخدم pdf.js لأنني لا أريد إخفاء أي شيء على الخادم. كل شيء يتم على العميل ، ويضمن الكود القيام بما يدعي أنه يفعله.

الكود الخاص بي صغير وسهل القراءة ومفتوح للتدقيق. لم يتم تصغيره حتى في الإنتاج. أعتمد على كود طرف ثالث يعمل على العميل ، والثقة تنبع من المؤلفين ومجتمع المصدر المفتوح. التطبيق مفتوح المصدر على git hub ويتم استضافة التطبيق نفسه على git hub.

طالما يتم الاحتفاظ بالتطبيق بهذه الطريقة ، فإن مصداقيتي ليست مهمة. ومع ذلك ، إذا قمت بتضمين pdf.js في المصدر ، حتى لو لم يتم بناؤه أو تصغيره ، فإن ذلك يقلل بشكل خطير من الشفافية. يحتاج المستخدم إلى أن يثق بي أنني لم أخفي تعليمات برمجية ضارة في غابة pdf.js.

من ناحية أخرى ، إذا تم جلب pdf.js وجميع رموز الطرف الثالث الأخرى (يفضل عدم تصغيرها) من cdn المعتمد من قبل الفريق والمجتمع ، فإن مصداقيتي تصبح غير ذات صلة تقريبًا.

مع ملفوفة للعامل (انظر # 6753) ، تكون المكتبة الأساسية "مضيفة" على CDN ، على سبيل المثال الحد الأدنى من الأمثلة التي تعمل بشكل جيد على jsfiddle و 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 جميع حزم npm عند الطلب.

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

من الواضح أنه لم تتم معاقبة المشرف ، ولكنه موجود إذا أراده الناس لأغراض النماذج الأولية.

yurydelendik هذا سيعمل بالتأكيد بالنسبة لي ، شكرًا!

darylteo شكرا

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

يفكر فريقdarylteo، PDF.js دائمًا في إهمال pdf.combined.js نظرًا لأنه ليس الغرض من استخدام المكتبة. يرجى محاولة عدم استخدامه عندما يكون ذلك ممكنًا (بالإضافة إلى عدم تطبيق disableWorker = true ، والذي يشير إليه pdf.combined.js).

yurydelendik شكرا للمعلومات! أنا فقط أقوم ببناء نموذج أولي لحل iOS WKWebView لا يعرض ملفات PDF بشكل صحيح في إطارات iframes في الوقت الحالي ، لكنني سأضع ذلك في الاعتبار.

@ camitz ، أنا فضولي. كيف ولماذا رمز 8 فبراير yurydelendik "يعمل من أجلك"؟ أنا أسأل لأنه يشير إلى //mozilla.github.io/pdf.js/build/pdf.js ، ولن أعتبره بشكل عام على أنه cdn. كما أنه لا يشير إلى نسخة ذات إصدار من pdf.js

yurydelendik (أو من هو مناسب) - هل يمكن إعادة فتح هذه المشكلة حتى تتوافر بالتأكيد نسخ مصغرة من pdf.js على قرص واحد على الأقل ذائعة الصيت؟ بدأت هذه المشكلة بالإشارة إلى cdnjs ، ووفقًا لموقع الويب الخاص بهم ، أصبح لديهم الآن طريقة مفضلة لـ "طلب lib" عبر نموذج مشكلة GitHub لطلب إضافة PDF.js إلى cdnjs. هل يمكن لقائد مشروع PDF.js تقديم مثل هذا الطلب؟ (سأفعل ذلك بنفسي ولكني لا أعرف ما إذا كان مشروع PDF.js يريد cdnjs استخدام pdf.js أو pdfjs-dist. أيضًا ، من الأفضل على الأرجح أن يقوم مشروع PDF.js نفسه بإنشاء نسخة مصغرة من رمزها الذي يذهب إلى cdnjs.)

أعتقد أن حالة استخدام camitz التي شاركها في 30 ديسمبر جيدة جدًا ولا تزال قابلة للتطبيق على الكثير من الأشخاص (بما فيهم أنا). مثل camitz ، أود تقليل مقدار الثقة التي يجب أن يضعها المستخدمون لي ، واستخدام نسخ من المكتبات الموجودة على CDN يساعد بالتأكيد في ذلك.

@ jon-free هناك https://npmcdn.com/pdfjs-dist وهو محدث. بالنسبة إلى cdnjs ، يوجد طلب سحب https://github.com/cdnjs/cdnjs/pull/5993. لا أعتقد أن هناك المزيد الذي يمكننا القيام به في هذه المرحلة ؛ موقع الويب npmcdn على وجه الخصوص لطيف لأنه يستخدم حزمة NPM الخاصة بنا وبالتالي فهو دائمًا محدث.

@ jon-free هنا مثال jsfiddle يستخدم npmcdn https://jsfiddle.net/y3rsLwwp/5/

timvandermeij ، yurydelendik : شكرًا لك على هذه المعلومات! يساعد ذلك في توضيح (بالنسبة لي ، على أي حال) ما قاله داريلتو في 17 فبراير

هممممم ... تحافظ CDNJS هنا ، سأعمل عليها الآن.

حسنًا ، تمت الإضافة الآن في: https://github.com/cdnjs/cdnjs/commit/df40a0dd137d5ed1e885354ca8ac492df20bcac0

تضمين التغريدة من الجيد أن يكون لديك PDF.js مستضاف على اثنين من شبكات CDN (cdnjs و npmcdn) الآن.

لا مشاكل. فقط لمعلوماتك ، من خلال الهندسة المعمارية ، قد يتم تحديث npmcdn بشكل أسرع قليلاً ، لكن CDNJS سيكون لها أداء أفضل لبيئة الإنتاج ، كما يوفر CDNJS ملفات مصغرة وملفات خرائط إضافية.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات