Я нашел это чрезвычайно полезным
def memoize(function):
from functools import wraps
memo = {}
@wraps(function)
def wrapper(*args):
if args in memo:
return memo[args]
else:
rv = function(*args)
memo[args] = rv
return rv
return wrapper
@memoize
def fibonacci(n):
if n < 2: return n
return fibonacci(n - 1) + fibonacci(n - 2)
fibonacci(25)
Вы можете сделать это в javascipt с помощью методов истории и события onpopstate.
См. Документ: https://developer.mozilla.org/en-US/docs/Web/API/History_API
. Например, вы можете использовать этот код, когда пользователь щелкните по ресурсу
history.pushState({}, "marketplace", "markeplace.html");
window.location.href = 'ressource.html';
Вы также можете использовать replaceState и pushState, когда пользователь приходит на ресурс, но вы также будете использовать событие onpopstate:
history.replaceState({}, "marketplace", "markeplace.html");
history.pushState({}, "ressource", "ressource.html");
window.addEventListener('popstate', (event) => {
document.location.href = document.location;
}, false);