ViewerConfig

אפשרויות וידג'ט תצוגת לקוח

ViewerConfig (namespace Doconut) מתאר את המראה וההתנהגות של מציג הדפדפן. הוא אינו משפיע על איכות רינדור המסמך; השתמשו בתצורת פורמט עבור זאת. למחלקת C# והווידג'ט הוותיק של JavaScript יש ערכי ברירת מחדל שונים, ולכן יש למפות ערכים במפורש.

שתי שינויים בצד הלקוח במהדורה זו נכשלות בשקט. פונקציות מטפל מועברות כאופציות — הווידג'ט כבר לא יוצר שמות פונקציות גלובליים ממזהה המכולה — ו‑ResPath חייב להצביע על קידומת המשאבים במקום על שורש היישום. שני השינויים משאירים את השרת פועל בצורה מושלמת ולא מדווחים דבר בקונסול הדפדפן. אם אתם מעבירים דף מהספרייה הקודמת, קראו את Callbacks ו‑Path checklist לפני כל דבר אחר.

מאפייני C#

סוגמאפייןברירת מחדלתיאור
boolShowThumbstrueהצגת לוח התמונות הממוזערות.
boolAutoLoadfalseטעינה אוטומטית לאחר האתחול. זרימת הטוקן הרגילה קוראת ל‑View(token) במפורש.
boolAutoFocustrueהזזת מיקוד/גלילה של הדפדפן אל המציג במהלך האתחול.
boolAutoPageFocustrueשמירת התמונה הממוזערת הנוכחית גלויה בזמן שינוי דפים.
intPageZoom100אחוז זום ראשוני.
intZoomStep10אחוז שנוסף או מוסר על ידי פקודות זום.
intMaxZoom300אחוז זום מרבי.
boolShowToolTiptrueהצגת תיבת מידע על מיקום העמוד בזמן גלילה.
stringToolTipPageText"Page "קידומת המשמשת בתיבת המידע של העמוד.
boolCacheEnabledfalseשמירת חלון נע של תמונות דפים בזיכרון הדפדפן. אינו משתמש ב‑localStorage.
boolLargeDocfalseהוספת אלמנטים של דפים במנות מתוזמנות למסמכים גדולים.
boolShowHyperlinksfalseהצגת שכבות קישורים כאשר תצורת השרת חילצה אותם.
boolFixedZoomtrueשימוש באחוז זום קבוע במקום חישוב רספונסיבי.
intFixedZoomPercent100זום קבוע למחשב שולחני.
intFixedZoomPercentMobile75זום קבוע למובייל.
stringBasePath"/"היכן שהמציג שולח בקשות דף. "/" הוא DocImage.axd בשורש האתר; אחרת הסניף שבו המארח ממפה UseDoconut(), בלי סלאש מוביל / ("doconut" משמעותו /doconut/DocImage.axd).
stringResPath"doconut-res/images" (26.9.0; "doconut-res" לפני)תיקייה שממנה הווידג'ט טוען את התמונות שלו: תיקיית images תחת ResourcesPath, בלי סלאש מוביל /.
stringFitType"width""width", "height" או ריק עבור ללא התאמה אוטומטית. "page" אינו מתקבל על ידי הווידג'ט הנוכחי.
boolRetryOn409falseהפעלת פולינג כאשר ייצור דפים אסינכרוני/מבוזר מחזיר 202 Accepted; 409 גם מתקבל לתאימות עם שרתים ישנים יותר. אינו נדרש עבור המציג הסינכרוני הרגיל.
csharp
var config = new ViewerConfig
{
    ShowThumbs = true,
    AutoLoad = false,
    PageZoom = 100,
    MaxZoom = 300,
    FitType = "width",
    BasePath = "doconut",           // בלי סלאש מוביל '/': המציג מוסיף אותו ("/doconut" היה הופך ל‑//doconut, מארח אחר)
    ResPath = "doconut-res/images",
    ShowHyperlinks = true
};

מיפוי מ‑C# ל‑JavaScript

אל תעבירו ViewerConfig שמסודר ישירות ל‑docViewer(...). רוב מפתחות הווידג'ט הם camelCase, בעוד שלושה מפתחות נתיב/התאמה מבוססי PascalCase.

C#JavaScript
ShowThumbsshowThumbs
AutoLoadautoLoad
AutoFocusautoFocus
AutoPageFocusautoPageFocus
PageZoompageZoom
ZoomStepzoomStep
MaxZoommaxZoom
ShowToolTipshowToolTip
ToolTipPageTexttoolTipPageText
CacheEnabledcacheEnabled
LargeDoclargeDoc
ShowHyperlinksshowHyperlinks
FixedZoomfixedZoom
FixedZoomPercentfixedZoomPercent
FixedZoomPercentMobilefixedZoomPercentMobile
BasePathBasePath
ResPathResPath
FitTypeFitType
RetryOn409retryOn409

ברירות מחדל של JavaScript

הווידג'ט מכיל ברירות מחדל ישנות השונות מהמחלקה ב‑C#. הערכים הבאים מגיעים מיישום ה‑docViewer.js הנוכחי.

אפשרותברירת מחדלהערות
leftMinWidth / leftMaxWidth220 / 800גבולות רוחב חלונית התמונות המוקטנות.
showThumbstrueנראות ראשונית של התמונות המוקטנות.
autoFocus / autoPageFocustrue / falseהערך autoPageFocus שונה מברירת המחדל ב‑C#.
thumbWidth / thumbHeight / thumbPadding150 / 200 / 10גיאומטריית תמונות מוקטנות בפיקסלים.
pageZoom / zoomStep / maxZoom100 / 10 / 200ה‑maxZoom ב‑JavaScript שונה מ‑C# (300).
showToolTip / toolTipPageTexttrue / "Page "תיאור מקשר (tooltip) של מיקום העמוד.
format / doc / AccessToken"" / 0 / ""ערכי אתחול פנימיים; בדרך כלל מתמלאים על‑ידי View(token).
debugModefalseאבחון נוסף בצד הלקוח.
FitType""אין התאמה אוטומטית אלא אם כן מסופק ערך.
BasePath"DocImage.axd"ברירת מחדל היסטורית של הלקוח שנשמרה לצורך תאימות. מארחי ASP.NET Core נוכחיים חייבים להגדיר זאת במפורש לנתיב המתווך המתאים.
ResPath""הגדרה מפורשת לנתיב של התמונות המוטמעות.
cacheEnabled / cacheCount / cacheDelayfalse / 3 / 3חלון טעינה מקדימה של דפים בזיכרון והשהייה.
autoLoadfalseמומלץ להשתמש בזרימת אסימון מפורשת.
largeDoctrueשונה מברירת המחדל ב‑C#.
fixedZoomfalseשונה מברירת המחדל ב‑C#.
fixedZoomPercent / fixedZoomPercentMobile100 / 50הערך למובייל שונה מ‑C# (75).
showHyperlinkstrueדורש חילוץ בצד השרת ליצירת שכבות.

הגדר את כל הערכים החשובים להתנהגות במקום להסתמך על אחד משני סטים של ברירות מחדל:

html
<div id="divDocViewer"><div id="div_ctlDoc"></div></div>

<script>
const objViewer = $('#div_ctlDoc').docViewer({
    showThumbs: true,
    autoLoad: false,
    autoFocus: true,
    autoPageFocus: true,
    pageZoom: 100,
    zoomStep: 10,
    maxZoom: 300,
    FitType: 'width',
    cacheEnabled: false,
    largeDoc: false,
    showHyperlinks: true,
    fixedZoom: true,
    fixedZoomPercent: 100,
    fixedZoomPercentMobile: 75,
    BasePath: 'doconut',
    ResPath: 'doconut-res/images',
    onViewerReady: function () {},
    onError: function (message) { console.error('DocViewer:', message); }
});
</script>

קריאות חזרה

קריאת חזרהארגומנטיםמטרה
onPageLoadingpageNumבקשת דף מתחילה.
onPageLoadedpageNumתמונת דף הסתיימה לטעון.
onThumbnailClickedpageNumהמשתמש בחר בתמונה ממוזערת.
onPageClickedpageNumהמשתמש בחר בדף.
onDoubleClicknoneהצופה קיבל לחיצה כפולה.
onViewerBusynoneהצופה נכנס למצב עסוק.
onViewerReadynoneהאתחול הושלם.
onViewerErrornoneהצופה נכנס למצב שגיאה.
onErrormessageפעולה החזירה הודעת שגיאה.
onCopydataנתוני העתקת טקסט זמינים.
onAutoLoadStatuspageNumטעינה אוטומטית התקדמה לעמוד.
onThumbsShownnoneפאנל התמונות הממוזערות הפך גלוי.
onAnnLoadednoneנתוני ההערות נטענו.
onAnnSavednoneנתוני ההערות נשמרו.
onAnnSaveErrornoneשמירת ההערות נכשלה.
onAnnClosednoneממשק ההערות נסגר.

שמור על קריאות החזרה מהירות; שלח טלמטריה באופן אסינכרוני ואל תחסום את רינדור העמוד.

כל אחת מהן היא אפשרות באובייקט האתחול. הצופה הקודם חיפש פונקציות גלובליות שהשם שלהן נגזר ממזהה המכולה — בדף עם <div id="div_ctlDoc"> היה צורך רק להגדיר function ctlDoc_OnViewerReady(). חיפוש זה נעלם. העבר את הפונקציה במפורש:

javascript
objctlDoc = $('#div_ctlDoc').docViewer({
    // ... your existing options ...
    onViewerBusy:     ctlDoc_OnViewerBusy,      // was found by name
    onViewerReady:    ctlDoc_OnViewerReady,     // was found by name
    onCopy:           ctlDoc_Copy,              // was ctlDoc_Copy(text)
    onAutoLoadStatus: ctlDoc_AutoLoadStatus     // was ctlDoc_AutoLoadStatus(page)
});

החיפוש הישן היה עטוף ב‑catch ריק, ולכן שום דבר לא דווח. בגרסה זו הפונקציות פשוט אינן רצות: התסמין הרגיל הוא סמן טעינה שממשיך להסתובב ולא מפסיק, מכיוון שהמטפל שהסתיר אותו היה onViewerReady. המסמך מאחוריו מצויר כראוי.

אין קריאת חזרה ללחיצה על קישור — טיפול בקישורים מובנה ומופעל על‑ידי showHyperlinks.

קבוצות שיטות ציבוריות

קבוצהשיטות משותפות
מחזור חייםView(token, accessToken?), Close(server?), Token(), Init(), IsLoaded()
ניווטGotoPage(page), ShowPage(page, focus?), Next(next), CurrentPage(), TotalPages()
זום והתאמהZoom(zoomIn), CurrentZoom(), FitType(value), Refit()
כיווןRotate(page, angle), Flip(page, flipType)
תמונות ממוזערותHideThumbs(hide), ThumbSize(size), ReloadThumbs(width), ScrollToThumb(thumb)
חיפושCanSearch(), Search(...), SearchMatchCount(), SearchSummary(...), GotoSearchMatch(...)
הערותSaveAnnotations(), GetAnnotations(), PushAnnotations(...), CloseAnnotations(...), ShowAnnotations(...)
העתקהCopy(...), CopyPage(pageNumber), CopyMode(enabled)

קובץ ה‑JavaScript מכיל גם עוזרים פנימיים. יש להתייחס רק לשיטות המשמשות את ממשק המשתמש המתועד כאן או במדריכי הפיצ'רים כנקודות אינטגרציה יציבות.

ניסיון חוזר בזמן שדף מבוזר עדיין מתעבד

retryOn409 שומר על שמו ההיסטורי. הוא מיועד לייצור דפים אסינכרוני ו‑ מנסה מחדש את תגובת המוכנות 202 Accepted וכן את האות הישנה 409 Conflict.
כאשר הוא מופעל, הווידג׳ט מבצע סקרנות עם ערכי ברירת המחדל של JavaScript הבאים:

אפשרותברירת מחדל
retryInitialDelayMs250
retryBackoffFactor1.6
retryMaxDelayMs2500
retryMaxAttempts60
retryMaxTotalMs120000

השאירו אותו מושבת עבור הצופה הרגיל בעל צומת יחיד. הפעלתו לא יכולה להפוך רינדור סינכרוני לא נתמך לאסינכרוני.

הפעילו אותו כאשר דפים מוגשים מאחסון משותף עם FirstPagePriority, שבו דפים מאוחרים יותר משיבים באופן חוקי 202 Accepted עד שהם נכתבים. לקוח שלא מנסה מחדש יציג אריחים פגומים עבור דפים שעדיין מתעבדים — ראו פריסות מבוזרות.

רשימת בדיקת נתיב

  • DoconutOptions.MiddlewarePath חייב לתאר את הסניף שאתה באמת ממפה.
  • BasePath חייב למקד את הסניף הזה, כתוב ללא / מוביל ('doconut', ולא '/doconut': הצופה מוסיף את הקו המפריד, ו‑//doconut/... הוא בקשה למארח אחר). היישום ההתייחסותי שומר על צורת הבקשה ההיסטורית DocImage.axd על סניף MapWhen ולכן מגדיר BasePath: '/'.
  • DoconutOptions.ResourcesPath הוא נתיב המשאב המוטמע.
  • ResPath בדרך כלל מכוון לתיקיית המשנה images שלו, ללא / מוביל — 'doconut-res/images' עם הקידומת המוגדרת כברירת מחדל. ResPath ריק היה נכון בספרייה הקודמת, שבה המשאבים באו משורש היישום; הוא אינו נכון כאן, והוא נכשל ללא הודעת שגיאה.
  • ExtractHyperlinks חייב להיות מופעל בתצורת פורמט השרת לפני ש‑showHyperlinks יכול להציג משהו.

האם דף זה היה מועיל?