ViewerConfig
Επιλογές widget προβολέα πελάτη
ViewerConfig (namespace Doconut) περιγράφει την εμφάνιση και τη συμπεριφορά του προβολέα του προγράμματος περιήγησης. Δεν επηρεάζει την ποιότητα απόδοσης του εγγράφου· χρησιμοποιήστε μια διαμόρφωση μορφής γι' αυτό. Η κλάση C# και το μακροχρόνιο widget JavaScript έχουν διαφορετικές προεπιλογές, επομένως αντιστοιχίστε τις τιμές ρητά.
Δύο αλλαγές στην πλευρά του πελάτη σε αυτή την έκδοση αποτυγχάνουν σιωπηρά. Οι συναρτήσεις χειριστή περνιούνται ως επιλογές — το widget δεν εξάγει πλέον ονόματα παγκόσμιων συναρτήσεων από το id του container — και το
ResPathπρέπει να δείχνει στο πρόθεμα των πόρων αντί στη ρίζα της εφαρμογής. Και τα δύο αφήνουν τον διακομιστή να λειτουργεί τέλεια και δεν αναφέρουν τίποτα στην κονσόλα του προγράμματος περιήγησης. Αν προωθείτε μια σελίδα από την προηγούμενη βιβλιοθήκη, διαβάστε Κλήσεις επιστροφής και Λίστα ελέγχου διαδρομής πριν οτιδήποτε άλλο.
Ιδιότητες C#
| Τύπος | Ιδιότητα | Προεπιλογή | Περιγραφή |
|---|---|---|---|
bool | ShowThumbs | true | Εμφανίζει το πάνελ μικρογραφιών. |
bool | AutoLoad | false | Φορτώνει αυτόματα μετά την αρχικοποίηση. Η κανονική ροή token καλεί το View(token) ρητά. |
bool | AutoFocus | true | Μετακινεί την εστίαση/κύλιση του προγράμματος περιήγησης στον προβολέα κατά την αρχικοποίηση. |
bool | AutoPageFocus | true | Διατηρεί τη τρέχουσα μικρογραφία ορατή ενώ αλλάζουν οι σελίδες. |
int | PageZoom | 100 | Αρχικό ποσοστό ζουμ. |
int | ZoomStep | 10 | Ποσοστό που προστίθεται ή αφαιρείται με τις εντολές ζουμ. |
int | MaxZoom | 300 | Μέγιστο ποσοστό ζουμ. |
bool | ShowToolTip | true | Εμφανίζει το tooltip θέσης σελίδας κατά την κύλιση. |
string | ToolTipPageText | "Page " | Πρόθεμα που χρησιμοποιείται στο tooltip της σελίδας. |
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" before) | Φάκελος από τον οποίο το widget φορτώνει τις δικές του εικόνες: ο φάκελος images κάτω από το ResourcesPath, χωρίς αρχικό /. |
string | FitType | "width" | "width", "height", ή κενό για καμία αυτόματη προσαρμογή. Το "page" δεν γίνεται αποδεκτό από το τρέχον widget. |
bool | RetryOn409 | false | Ενεργοποιεί την ανάληψη ερωτημάτων όταν η ασύγχρονη/διανεμημένη παραγωγή σελίδων απαντά 202 Accepted; το 409 επίσης γίνεται αποδεκτό για συμβατότητα με παλαιότερους διακομιστές. Δεν απαιτείται από τον κανονικό συγχρονισμένο προβολέα. |
var config = new ViewerConfig
{
ShowThumbs = true,
AutoLoad = false,
PageZoom = 100,
MaxZoom = 300,
FitType = "width",
BasePath = "doconut", // χωρίς αρχικό '/': ο προβολέας το προσθέτει ("/doconut" θα γίνει //doconut, άλλο host)
ResPath = "doconut-res/images",
ShowHyperlinks = true
};Αντιστοίχιση C# σε JavaScript
Μην περάσετε ένα άμεσα σειριοποιημένο ViewerConfig στο docViewer(...). Οι περισσότερες κλειδιά του widget είναι 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
Το widget έχει παλαιότερες προεπιλογές που διαφέρουν από την κλάση 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 | Το JavaScript maxZoom διαφέρει από το C# (300). |
showToolTip / toolTipPageText | true / "Page " | Συμβουλή εργαλείου θέσης σελίδας. |
format / doc / AccessToken | "" / 0 / "" | Εσωτερικές τιμές αρχικοποίησης· συνήθως γεμίζονται από το View(token). |
debugMode | false | Επιπλέον διαγνωστικά πελάτη. |
FitType | "" | Καμία αυτόματη προσαρμογή εκτός εάν δοθεί. |
BasePath | "DocImage.axd" | Ιστορική προεπιλογή πελάτη διατηρημένη για συμβατότητα. Οι τρέχοντες κεντρικοί υπολογιστές ASP.NET Core πρέπει να το ορίσουν ρητά στο αντιστοιχισμένο κλαδί middleware. |
ResPath | "" | Ορίζεται ρητά στη διαδρομή ενσωματωμένων εικόνων. |
cacheEnabled / cacheCount / cacheDelay | false / 3 / 3 | Παράθυρο και καθυστέρηση προφόρτωσης σελίδων στη μνήμη. |
autoLoad | false | Συνιστάται ρητή ροή token. |
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 | Το UI σχολίων έκλεισε. |
Κρατήστε τις ανακλήσεις γρήγορες· στείλτε τηλεμετρία ασύγχρονα και μην μπλοκάρετε την απόδοση της σελίδας.
Κάθε μία από αυτές είναι μια επιλογή στο αντικείμενο init. Ο προηγούμενος προβολέας έψαχνε
παγκόσμιες συναρτήσεις των οποίων τα ονόματα προερχόταν από το id του container — μια σελίδα με
<div id="div_ctlDoc"> έπρεπε μόνο να δηλώσει function ctlDoc_OnViewerReady(). Αυτή η αναζήτηση
έχει αφαιρεθεί. Περνάτε τη συνάρτηση ρητά:
objctlDoc = $('#div_ctlDoc').docViewer({
// ... οι υπάρχουσες επιλογές σας ...
onViewerBusy: ctlDoc_OnViewerBusy, // βρέθηκε με το όνομα
onViewerReady: ctlDoc_OnViewerReady, // βρέθηκε με το όνομα
onCopy: ctlDoc_Copy, // ήταν ctlDoc_Copy(text)
onAutoLoadStatus: ctlDoc_AutoLoadStatus // ήταν 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 περιέχει επίσης εσωτερικές βοηθητικές λειτουργίες. Θεωρήστε μόνο τις μεθόδους που χρησιμοποιούνται από το αναφορά UI και τεκμηριώνονται εδώ ή στους οδηγούς χαρακτηριστικών ως σταθερά σημεία ενσωμάτωσης.
Επανάληψη ενώ μια κατανεμημένη σελίδα εξακολουθεί να αποδίδεται
retryOn409 διατηρεί το ιστορικό του όνομα. Χρησιμοποιείται για ασύγχρονη παραγωγή σελίδων και επαναλαμβάνει την τρέχουσα απόκριση ετοιμότητας 202 Accepted καθώς και το παλαιότερο σήμα 409 Conflict. Όταν είναι ενεργοποιημένο, το widget ελέγχει με αυτές τις προεπιλογές 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μπορεί να εμφανίσει κάτι.
Ήταν αυτή η σελίδα χρήσιμη;