mirror of
https://github.com/squidfunk/mkdocs-material.git
synced 2024-06-14 11:52:32 +03:00
Ensure non-conflicting cache entries for loading data from GitHub
This commit is contained in:
parent
db4a8340d8
commit
67b2d84519
File diff suppressed because one or more lines are too long
@ -110,7 +110,7 @@
|
|||||||
<script src="https://cdn.mathjax.org/{{ path }}"></script>
|
<script src="https://cdn.mathjax.org/{{ path }}"></script>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
<script src="{{ base_url }}/assets/javascripts/application-2442e71194.js"></script>
|
<script src="{{ base_url }}/assets/javascripts/application-7d4b61265c.js"></script>
|
||||||
<script>var config={url:{base:"{{ base_url }}"}},app=new Application(config);app.initialize()</script>
|
<script>var config={url:{base:"{{ base_url }}"}},app=new Application(config);app.initialize()</script>
|
||||||
{% for path in extra_javascript %}
|
{% for path in extra_javascript %}
|
||||||
<script src="{{ path }}"></script>
|
<script src="{{ path }}"></script>
|
||||||
|
@ -41,6 +41,7 @@ export default class Abstract {
|
|||||||
|
|
||||||
/* Retrieve base URL */
|
/* Retrieve base URL */
|
||||||
this.base_ = this.el_.href
|
this.base_ = this.el_.href
|
||||||
|
this.salt_ = this.hash_(this.base_)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -50,7 +51,7 @@ export default class Abstract {
|
|||||||
*/
|
*/
|
||||||
fetch() {
|
fetch() {
|
||||||
return new Promise(resolve => {
|
return new Promise(resolve => {
|
||||||
const cached = Cookies.getJSON(".cache-source")
|
const cached = Cookies.getJSON(`${this.salt_}.cache-source`)
|
||||||
if (typeof cached !== "undefined") {
|
if (typeof cached !== "undefined") {
|
||||||
resolve(cached)
|
resolve(cached)
|
||||||
|
|
||||||
@ -58,7 +59,7 @@ export default class Abstract {
|
|||||||
a cookie that automatically expires in 15 minutes */
|
a cookie that automatically expires in 15 minutes */
|
||||||
} else {
|
} else {
|
||||||
this.fetch_().then(data => {
|
this.fetch_().then(data => {
|
||||||
Cookies.set(".cache-source", data, { expires: 1 / 96 })
|
Cookies.set(`${this.salt_}.cache-source`, data, { expires: 1 / 96 })
|
||||||
resolve(data)
|
resolve(data)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -88,4 +89,22 @@ export default class Abstract {
|
|||||||
return `${(number / 1000).toFixed(1)}k`
|
return `${(number / 1000).toFixed(1)}k`
|
||||||
return number
|
return number
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Simple hash function
|
||||||
|
*
|
||||||
|
* Taken from http://stackoverflow.com/a/7616484/1065584
|
||||||
|
*
|
||||||
|
* @param {string} str - Input string
|
||||||
|
* @return {string} Hashed string
|
||||||
|
*/
|
||||||
|
hash_(str) {
|
||||||
|
let hash = 0
|
||||||
|
if (str.length === 0) return hash
|
||||||
|
for (let i = 0, len = str.length; i < len; i++) {
|
||||||
|
hash = ((hash << 5) - hash) + str.charCodeAt(i)
|
||||||
|
hash |= 0 // Convert to 32bit integer
|
||||||
|
}
|
||||||
|
return hash
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user