ViewerConfig
אפשרויות וידג'ט תצוגת לקוח
ViewerConfig (namespace Doconut) מתאר את המראה וההתנהגות של מציג הדפדפן. הוא אינו משפיע על איכות רינדור המסמך; השתמשו בתצורת פורמט עבור זאת. למחלקת C# והווידג'ט הוותיק של JavaScript יש ערכי ברירת מחדל שונים, ולכן יש למפות ערכים במפורש.
שתי שינויים בצד הלקוח במהדורה זו נכשלות בשקט. פונקציות מטפל מועברות כאופציות — הווידג'ט כבר לא יוצר שמות פונקציות גלובליים ממזהה המכולה — ו‑
ResPathחייב להצביע על קידומת המשאבים במקום על שורש היישום. שני השינויים משאירים את השרת פועל בצורה מושלמת ולא מדווחים דבר בקונסול הדפדפן. אם אתם מעבירים דף מהספרייה הקודמת, קראו את Callbacks ו‑Path checklist לפני כל דבר אחר.
מאפייני C#
| סוג | מאפיין | ברירת מחדל | תיאור |
|---|---|---|---|
bool | ShowThumbs | true | הצגת לוח התמונות הממוזערות. |
bool | AutoLoad | false | טעינה אוטומטית לאחר האתחול. זרימת הטוקן הרגילה קוראת ל‑View(token) במפורש. |
bool | AutoFocus | true | הזזת מיקוד/גלילה של הדפדפן אל המציג במהלך האתחול. |
bool | AutoPageFocus | true | שמירת התמונה הממוזערת הנוכחית גלויה בזמן שינוי דפים. |
int | PageZoom | 100 | אחוז זום ראשוני. |
int | ZoomStep | 10 | אחוז שנוסף או מוסר על ידי פקודות זום. |
int | MaxZoom | 300 | אחוז זום מרבי. |
bool | ShowToolTip | true | הצגת תיבת מידע על מיקום העמוד בזמן גלילה. |
string | ToolTipPageText | "Page " | קידומת המשמשת בתיבת המידע של העמוד. |
bool | CacheEnabled | false | שמירת חלון נע של תמונות דפים בזיכרון הדפדפן. אינו משתמש ב‑localStorage. |
bool | LargeDoc | false | הוספת אלמנטים של דפים במנות מתוזמנות למסמכים גדולים. |
bool | ShowHyperlinks | false | הצגת שכבות קישורים כאשר תצורת השרת חילצה אותם. |
bool | FixedZoom | true | שימוש באחוז זום קבוע במקום חישוב רספונסיבי. |
int | FixedZoomPercent | 100 | זום קבוע למחשב שולחני. |
int | FixedZoomPercentMobile | 75 | זום קבוע למובייל. |
string | BasePath | "/" | היכן שהמציג שולח בקשות דף. "/" הוא DocImage.axd בשורש האתר; אחרת הסניף שבו המארח ממפה UseDoconut(), בלי סלאש מוביל / ("doconut" משמעותו /doconut/DocImage.axd). |
string | ResPath | "doconut-res/images" (26.9.0; "doconut-res" לפני) | תיקייה שממנה הווידג'ט טוען את התמונות שלו: תיקיית images תחת ResourcesPath, בלי סלאש מוביל /. |
string | FitType | "width" | "width", "height" או ריק עבור ללא התאמה אוטומטית. "page" אינו מתקבל על ידי הווידג'ט הנוכחי. |
bool | RetryOn409 | false | הפעלת פולינג כאשר ייצור דפים אסינכרוני/מבוזר מחזיר 202 Accepted; 409 גם מתקבל לתאימות עם שרתים ישנים יותר. אינו נדרש עבור המציג הסינכרוני הרגיל. |
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 |
|---|---|
ShowThumbs | showThumbs |
AutoLoad | autoLoad |
AutoFocus | autoFocus |
AutoPageFocus | autoPageFocus |
PageZoom | pageZoom |
ZoomStep | zoomStep |
MaxZoom | maxZoom |
ShowToolTip | showToolTip |
ToolTipPageText | toolTipPageText |
CacheEnabled | cacheEnabled |
LargeDoc | largeDoc |
ShowHyperlinks | showHyperlinks |
FixedZoom | fixedZoom |
FixedZoomPercent | fixedZoomPercent |
FixedZoomPercentMobile | fixedZoomPercentMobile |
BasePath | BasePath |
ResPath | ResPath |
FitType | FitType |
RetryOn409 | retryOn409 |
ברירות מחדל של JavaScript
הווידג'ט מכיל ברירות מחדל ישנות השונות מהמחלקה ב‑C#. הערכים הבאים מגיעים מיישום ה‑docViewer.js הנוכחי.
| אפשרות | ברירת מחדל | הערות |
|---|---|---|
leftMinWidth / leftMaxWidth | 220 / 800 | גבולות רוחב חלונית התמונות המוקטנות. |
showThumbs | true | נראות ראשונית של התמונות המוקטנות. |
autoFocus / autoPageFocus | true / false | הערך autoPageFocus שונה מברירת המחדל ב‑C#. |
thumbWidth / thumbHeight / thumbPadding | 150 / 200 / 10 | גיאומטריית תמונות מוקטנות בפיקסלים. |
pageZoom / zoomStep / maxZoom | 100 / 10 / 200 | ה‑maxZoom ב‑JavaScript שונה מ‑C# (300). |
showToolTip / toolTipPageText | true / "Page " | תיאור מקשר (tooltip) של מיקום העמוד. |
format / doc / AccessToken | "" / 0 / "" | ערכי אתחול פנימיים; בדרך כלל מתמלאים על‑ידי View(token). |
debugMode | false | אבחון נוסף בצד הלקוח. |
FitType | "" | אין התאמה אוטומטית אלא אם כן מסופק ערך. |
BasePath | "DocImage.axd" | ברירת מחדל היסטורית של הלקוח שנשמרה לצורך תאימות. מארחי ASP.NET Core נוכחיים חייבים להגדיר זאת במפורש לנתיב המתווך המתאים. |
ResPath | "" | הגדרה מפורשת לנתיב של התמונות המוטמעות. |
cacheEnabled / cacheCount / cacheDelay | false / 3 / 3 | חלון טעינה מקדימה של דפים בזיכרון והשהייה. |
autoLoad | false | מומלץ להשתמש בזרימת אסימון מפורשת. |
largeDoc | true | שונה מברירת המחדל ב‑C#. |
fixedZoom | false | שונה מברירת המחדל ב‑C#. |
fixedZoomPercent / fixedZoomPercentMobile | 100 / 50 | הערך למובייל שונה מ‑C# (75). |
showHyperlinks | true | דורש חילוץ בצד השרת ליצירת שכבות. |
הגדר את כל הערכים החשובים להתנהגות במקום להסתמך על אחד משני סטים של ברירות מחדל:
<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>קריאות חזרה
| קריאת חזרה | ארגומנטים | מטרה |
|---|---|---|
onPageLoading | pageNum | בקשת דף מתחילה. |
onPageLoaded | pageNum | תמונת דף הסתיימה לטעון. |
onThumbnailClicked | pageNum | המשתמש בחר בתמונה ממוזערת. |
onPageClicked | pageNum | המשתמש בחר בדף. |
onDoubleClick | none | הצופה קיבל לחיצה כפולה. |
onViewerBusy | none | הצופה נכנס למצב עסוק. |
onViewerReady | none | האתחול הושלם. |
onViewerError | none | הצופה נכנס למצב שגיאה. |
onError | message | פעולה החזירה הודעת שגיאה. |
onCopy | data | נתוני העתקת טקסט זמינים. |
onAutoLoadStatus | pageNum | טעינה אוטומטית התקדמה לעמוד. |
onThumbsShown | none | פאנל התמונות הממוזערות הפך גלוי. |
onAnnLoaded | none | נתוני ההערות נטענו. |
onAnnSaved | none | נתוני ההערות נשמרו. |
onAnnSaveError | none | שמירת ההערות נכשלה. |
onAnnClosed | none | ממשק ההערות נסגר. |
שמור על קריאות החזרה מהירות; שלח טלמטריה באופן אסינכרוני ואל תחסום את רינדור העמוד.
כל אחת מהן היא אפשרות באובייקט האתחול. הצופה הקודם חיפש פונקציות גלובליות שהשם שלהן נגזר ממזהה המכולה — בדף עם <div id="div_ctlDoc"> היה צורך רק להגדיר function ctlDoc_OnViewerReady(). חיפוש זה נעלם. העבר את הפונקציה במפורש:
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 הבאים:
| אפשרות | ברירת מחדל |
|---|---|
retryInitialDelayMs | 250 |
retryBackoffFactor | 1.6 |
retryMaxDelayMs | 2500 |
retryMaxAttempts | 60 |
retryMaxTotalMs | 120000 |
השאירו אותו מושבת עבור הצופה הרגיל בעל צומת יחיד. הפעלתו לא יכולה להפוך רינדור סינכרוני לא נתמך לאסינכרוני.
הפעילו אותו כאשר דפים מוגשים מאחסון משותף עם FirstPagePriority, שבו דפים מאוחרים יותר משיבים באופן חוקי 202 Accepted עד שהם נכתבים. לקוח שלא מנסה מחדש יציג אריחים פגומים עבור דפים שעדיין מתעבדים — ראו
פריסות מבוזרות.
רשימת בדיקת נתיב
DoconutOptions.MiddlewarePathחייב לתאר את הסניף שאתה באמת ממפה.BasePathחייב למקד את הסניף הזה, כתוב ללא/מוביל ('doconut', ולא'/doconut': הצופה מוסיף את הקו המפריד, ו‑//doconut/...הוא בקשה למארח אחר). היישום ההתייחסותי שומר על צורת הבקשה ההיסטוריתDocImage.axdעל סניףMapWhenולכן מגדירBasePath: '/'.DoconutOptions.ResourcesPathהוא נתיב המשאב המוטמע.ResPathבדרך כלל מכוון לתיקיית המשנהimagesשלו, ללא/מוביל —'doconut-res/images'עם הקידומת המוגדרת כברירת מחדל.ResPathריק היה נכון בספרייה הקודמת, שבה המשאבים באו משורש היישום; הוא אינו נכון כאן, והוא נכשל ללא הודעת שגיאה.ExtractHyperlinksחייב להיות מופעל בתצורת פורמט השרת לפני ש‑showHyperlinksיכול להציג משהו.
האם דף זה היה מועיל?