mirror of
https://github.com/bigskysoftware/htmx.git
synced 2026-01-25 05:06:13 +00:00
etag support
This commit is contained in:
16
src/htmx.js
16
src/htmx.js
@@ -361,8 +361,14 @@ var htmx = (() => {
|
||||
requestConfig[key] = configOverrides[key];
|
||||
}
|
||||
}
|
||||
if (requestConfig.etag) {
|
||||
sourceElement._htmx ||= {}
|
||||
sourceElement._htmx.etag ||= requestConfig.etag
|
||||
}
|
||||
}
|
||||
if (sourceElement._htmx?.etag) {
|
||||
ctx.request.headers["If-none-match"] = sourceElement._htmx.etag
|
||||
}
|
||||
|
||||
return ctx;
|
||||
}
|
||||
|
||||
@@ -502,7 +508,7 @@ var htmx = (() => {
|
||||
this.__extractHxHeaders(ctx);
|
||||
if (!this.__trigger(elt, "htmx:after:request", {ctx})) return;
|
||||
|
||||
if(this.__handleHxHeadersAndMaybeReturnEarly(ctx)){
|
||||
if(this.__handleHeadersAndMaybeReturnEarly(ctx)){
|
||||
return
|
||||
}
|
||||
|
||||
@@ -553,7 +559,7 @@ var htmx = (() => {
|
||||
}
|
||||
|
||||
// returns true if the header aborts the current response handling
|
||||
__handleHxHeadersAndMaybeReturnEarly(ctx) {
|
||||
__handleHeadersAndMaybeReturnEarly(ctx) {
|
||||
if (ctx.hx.trigger) {
|
||||
this.__handleTriggerHeader(ctx.hx.trigger, ctx.sourceElement);
|
||||
}
|
||||
@@ -576,6 +582,10 @@ var htmx = (() => {
|
||||
this.ajax('GET', path, opts);
|
||||
return true // TODO this seems legit
|
||||
}
|
||||
if(ctx.response.headers.get("Etag")) {
|
||||
ctx.elt._htmx ||= {}
|
||||
ctx.elt._htmx.etag = ctx.response.headers.get("Etag");
|
||||
}
|
||||
}
|
||||
|
||||
async __handleSSE(ctx, elt, response) {
|
||||
|
||||
@@ -22,7 +22,7 @@ describe('__handleHxHeadersAndMaybeReturnEarly unit tests', function() {
|
||||
sourceElement: container
|
||||
}
|
||||
|
||||
let result = htmx.__handleHxHeadersAndMaybeReturnEarly(ctx)
|
||||
let result = htmx.__handleHeadersAndMaybeReturnEarly(ctx)
|
||||
|
||||
assert.isNotOk(result)
|
||||
assert.isTrue(triggerFired)
|
||||
@@ -34,7 +34,7 @@ describe('__handleHxHeadersAndMaybeReturnEarly unit tests', function() {
|
||||
sourceElement: createProcessedHTML('<div></div>')
|
||||
}
|
||||
|
||||
let result = htmx.__handleHxHeadersAndMaybeReturnEarly(ctx)
|
||||
let result = htmx.__handleHeadersAndMaybeReturnEarly(ctx)
|
||||
|
||||
assert.isNotOk(result)
|
||||
})
|
||||
@@ -49,7 +49,7 @@ describe('__handleHxHeadersAndMaybeReturnEarly unit tests', function() {
|
||||
sourceElement: container
|
||||
}
|
||||
|
||||
let result = htmx.__handleHxHeadersAndMaybeReturnEarly(ctx)
|
||||
let result = htmx.__handleHeadersAndMaybeReturnEarly(ctx)
|
||||
|
||||
assert.isNotOk(result)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user