Метод Java finalize()
не является деструктором и не должен использоваться для обработки логики, от которой зависит ваше приложение. Спецификация Java заявляет, что нет гарантии, что метод finalize
вызывается вообще во время жизни приложения.
То, что вы, вероятно, хотите, это комбинация finally
и метода очистки, как в :
MyClass myObj;
try {
myObj = new MyClass();
// ...
} finally {
if (null != myObj) {
myObj.cleanup();
}
}
Я играл с этим некоторое время, потому что сначала я не поверил вам (я использую плагин истории jQuery , чтобы добиться аналогичного поведения).
И я в тупике. Я не думаю, что ты сможешь. Что вы могли бы сделать в качестве обходного пути, так это использовать javascript, чтобы установить хеш, ОТЛИЧНЫЙ от того, что на самом деле находится на странице . А затем используйте javascript при загрузке, чтобы прочитать хеш и заполнить правильный контент. Я делаю это на своем сайте . Таким образом, в этом сценарии пользователи без javascript будут прокручиваться, пользователи с javascript сохранят цепочку истории, и это становится дурацким только тогда, когда люди без отправки ссылок людям с (или наоборот).
Я нашел хорошее решение здесь: http://lea.verou.me/2011/05/change-url-hash-without-page-jump/
Использование preventDefault на, например, событии
$('a').click((event) => {
event.preventDefault();
let hash = $(event.target).attr('href');
history.pushState(null, null, hash);
// The url now has a hash but the page won't jump to the given anchor
// .. handle the rest (an easing scroll for example)
}
щелчка var Namespace = {
var timer, scroll;
}
// Onclick
Namespace.scroll = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop;
Namespace.timer = setInterval(function() { scrollTo(0, Namespace.scroll) }, 100);
location.hash = this.href;
clearInterval(Namespace.timer);
Не могли бы вы иметь какой-нибудь Javascript, который изменил бы имена привязок, установил window.location.hash, а затем снова изменил имена привязок?
(Я подтвердил, что andynormancx прав, и установка window.location.hash прокручивает представление, но мне лень проверять, если создание привязки в DOM к window.location.hash также прокручивается.)