aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorbobzel <zzzman@gmail.com>2022-02-16 10:40:13 -0500
committerbobzel <zzzman@gmail.com>2022-02-16 10:40:13 -0500
commita069560e3dd6fa4acf413409d56c5fbb6e9f8808 (patch)
tree1aa3af089251e8adcb7fdad9304dda462f65ca17 /src
parent18ce93d480cea51087672649382f92c5462ae085 (diff)
changed incremental loading to generate update requests more quickly. turned on local browser caching of server responses (eg, images)
Diffstat (limited to 'src')
-rw-r--r--src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx8
-rw-r--r--src/client/views/nodes/DocumentView.tsx2
-rw-r--r--src/client/views/nodes/WebBox.tsx5
-rw-r--r--src/server/server_Initialization.ts7
4 files changed, 15 insertions, 7 deletions
diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
index 85187c347..689b6a1b6 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
@@ -1302,7 +1302,7 @@ export class CollectionFreeFormView extends CollectionSubView<PanZoomDocument, P
return { newPool, computedElementData: this.doFreeformLayout(newPool) };
}
- @observable _numLoaded = 0;
+ @observable _numLoaded = 1;
NumLoaded = () => this._numLoaded;
get doLayoutComputation() {
const { newPool, computedElementData } = this.doInternalLayoutComputation;
@@ -1562,8 +1562,10 @@ export class CollectionFreeFormView extends CollectionSubView<PanZoomDocument, P
}
incrementalRender = action(() => {
- this._numLoaded++;
- this._numLoaded < this.views.length && setTimeout(this.incrementalRender, 25);
+ if (!LightboxView.LightboxDoc || LightboxView.IsLightboxDocView(this.props.docViewPath())) {
+ this._numLoaded++;
+ }
+ this._numLoaded < this.views.length && setTimeout(this.incrementalRender, 1);
})
children = () => {
diff --git a/src/client/views/nodes/DocumentView.tsx b/src/client/views/nodes/DocumentView.tsx
index b537cd370..9450aedb5 100644
--- a/src/client/views/nodes/DocumentView.tsx
+++ b/src/client/views/nodes/DocumentView.tsx
@@ -865,7 +865,7 @@ export class DocumentViewInternal extends DocComponent<DocumentViewInternalProps
focus={this.focus}
layoutKey={this.finalLayoutKey} />
{(this.isContentActive() && !SnappingManager.GetIsDragging()) || !thumb ? (null) :
- <img style={{ background: "white", top: 0, position: "absolute" }} src={thumb + '?d=' + (new Date()).getTime()}
+ <img style={{ background: "white", top: 0, position: "absolute" }} src={thumb} // + '?d=' + (new Date()).getTime()}
width={this.props.PanelWidth()} height={this.props.PanelHeight()} />}
{this.layoutDoc.hideAllLinks ? (null) : this.allLinkEndpoints}
{this.hideLinkButton || this.props.renderDepth === -1 || SnappingManager.GetIsDragging() ? (null) :
diff --git a/src/client/views/nodes/WebBox.tsx b/src/client/views/nodes/WebBox.tsx
index f384f97cd..dd971aafa 100644
--- a/src/client/views/nodes/WebBox.tsx
+++ b/src/client/views/nodes/WebBox.tsx
@@ -65,6 +65,7 @@ export class WebBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps
@observable private _searching: boolean = false;
@observable private _showSidebar = false;
@observable private _scrollTimer: any;
+ @observable private _webPageHasBeenRendered = false;
@observable private _overlayAnnoInfo: Opt<Doc>;
@observable private _marqueeing: number[] | undefined;
@observable private _isAnnotating = false;
@@ -145,7 +146,7 @@ export class WebBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps
NumCast(this.layoutDoc._scrollTop)
).then
((dataUrl: any) => {
- VideoBox.convertDataUri(dataUrl, this.layoutDoc[Id] + "-thumb", true).then(
+ VideoBox.convertDataUri(dataUrl, this.layoutDoc[Id] + "-thumb" + (new Date()).getTime(), true).then(
returnedfilename => setTimeout(action(() => this.layoutDoc.thumb = new ImageField(returnedfilename)), 500));
})
.catch(function (error: any) {
@@ -552,8 +553,6 @@ export class WebBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps
}
}
- @observable _webPageHasBeenRendered = false;
-
@computed get urlContent() {
if (this._hackHide || (this.webThumb && !this._webPageHasBeenRendered)) return (null);
const field = this.dataDoc[this.props.fieldKey];
diff --git a/src/server/server_Initialization.ts b/src/server/server_Initialization.ts
index b06437907..3bdc93f10 100644
--- a/src/server/server_Initialization.ts
+++ b/src/server/server_Initialization.ts
@@ -92,6 +92,13 @@ function buildWithMiddleware(server: express.Express) {
passport.session(),
(req: express.Request, res: express.Response, next: express.NextFunction) => {
res.locals.user = req.user;
+ if (req.method == 'GET') {
+ const period = 30000;
+ res.set('Cache-control', `public, max-age=${period}`)
+ } else {
+ // for the other requests set strict no caching parameters
+ res.set('Cache-control', `no-store`)
+ }
next();
}
].forEach(next => server.use(next));