PDF-ті вебте жылдам жүктелуге қалай оңтайландыруға болады
PDF-тің браузерде ашылу жылдамдығын салмақ емес, ішіндегі нысандар реті шешеді. Кәдімгі файлда сілтемелер кестесі ең соңында жатады, сондықтан қарау бағдарламасы бірінші бетті салу үшін соңғы байтты күтуге мәжбүр. Линеаризация бірінші беттің нысандарын басына шығарып, қалғандарына нұсқау кестелерін қосады: құжат құйрығы жүктеліп жатқанда-ақ көріне бастайды. Мазмұн мұнда мүлде өзгермейді.
Сандар туралы қысқаша
- Стандарт талабы
- линеаризация сөздігі — бірінші нысан, файлдың алғашқы 1024 байтында
- Біздің тексеру
- алғашқы 2048 байт қаралады: қолтаңбаға дейін қоқыс кездеседі
- Құрал
- qpdf --linearize, файлды екі өтуде қайта жазу
- Маршрут шектері
- файлға 50 МБ, 10 минутта 20 сұрау, 60 секунд таймаут
- Қосымша әсер
- qpdf-тің 3 қайтару коды файлдың жол-жөнекей жөнделгенін білдіреді
Линеаризация нақты не істейді
PDF стандарты линеаризация сөздігі файлдың бірінші нысаны болуын және алғашқы мың шақты байтқа түгел сыюын талап етеді. Бұл формальдылық емес, жұмыс шарты: қарау бағдарламасы құжатты бөлікпен көрсете ала ма деген шешімді тек басын оқып, файл соңына бір рет те жүгінбей қабылдайды. Біз де сол қасиетті пайдаланып, линеаризацияланған файлды алғашқы екі килобайтты қарап анықтаймыз — қорымен, себебі PDF қолтаңбасының алдында пошта шлюздері мен прокси қалдырған қоқыс жатуы мүмкін.
Одан әрі qpdf линеаризация кілтімен іске қосылады. Бұл екі өтулі қайта жазу: алдымен бірінші беттің нысандары қайда тұратыны есептеледі, сосын файл әр бетке байт ауқымын сәйкестендіретін нұсқау кестелерімен қайта жазылады. Файл бөліктерін ауқыммен сұрай алатын бағдарлама содан кейін керекті бетті бүкіл құжатты жүктемей, бір сұраумен алады.
Оңтайландыру нені істемейді
- Салмақты байқарлықтай азайтпайды. Нұсқау кестелері — қосымша байттар; файл сәл үлкейюі мүмкін, бұл бірінші экран жылдамдығының қалыпты бағасы.
- Суреттерге тимейді. Ажыратымдылық, JPEG сапасы және түстілік бұрынғы күйінде қалады.
- Сығымдауды алмастырмайды. Түпнұсқа жүз мегабайт тартса, линеаризациядан кейін де сонша тартады.
- Файл бұрыннан линеаризацияланған болса көмектеспейді: біз мұны жауапта бөлек белгімен хабарлаймыз, құжатты шеңбермен қуаламау үшін.
Серверлік өңдеу шектері
- Файл көлемі — 50 МБ дейін: бұл qpdf-ке негізделген барлық маршруттарымыздың ортақ шегі.
- Жиілік — бір мекенжайдан он минутта 20 сұрау.
- Өңдеу уақыты — бір минуттан аспайды; линеаризация арзан, біздің өлшеуімізде 89 беттік 6 МБ файл шамамен 40 миллисекундта өтті.
- Кезек шектеулі: күтіп тұрғандар бестен көп болса, сервер процесс жинамай, «бос емес» деп тура жауап береді.
- qpdf жол-жөнекей құрылымды жөндеген болса, жауапта жөндеу белгісі болады — файл бүлінген еді, мұны білген жөн.
Жиі қойылатын сұрақтар
Оңтайландырудан кейін файл жеңілдей ме?
Керісінше болуы ықтимал. Линеаризация нысандардың мазмұнын емес, ретін өзгертеді әрі нұсқау кестелерін қосады, сондықтан көлем сол күйінде қалады немесе сәл өседі.
Онда құжатты неге линеаризациялау керек?
Бірінші бетке дейінгі уақыт үшін. Оқырман қалғаны жүктеліп жатқанда құжаттың басын көреді, ал бұл бірер пайыз салмақ үнемінен әлдеқайда байқалады.
Файлдың бұрыннан линеаризацияланғанын қалай білуге болады?
Файлдың басынан: линеаризация сөздігі алғашқы байттарда жатуға міндетті. Құрал мұны өңдеуге дейін тексеріп, нәтижені дайын файлмен бірге хабарлайды.
Оңтайландыру кезінде файл серверге кете ме?
Иә, бұл әрекет серверлік: qpdf браузерде жұмыс істемейді. Файл өңделіп жойылады, бірақ құпиялық аса маңызды болса, жергілікті жұмыс істейтін құралдарды қолданыңыз.