Junior
JavaScriptте браузердин тарыхын кантип башкарса болот, алдыга жана артка жылжып?
sobes.tech AI
AIден жооп
Браузердин сессия тарыхына кирүү үчүн history объекти колдонулат. Башкы ыкмалары:
history.back(): тарыхта бир баракка артка кайтууга мүмкүндүк берет.history.forward(): бир баракка алдыга жылдырууга мүмкүндүк берет.history.go(delta): белгиленген кадамдар санында тарыхта жылжытат (deltaтерс болсо, артка кайтууга).
Куллануу мисалы:
// Эски баракка кайтуу
history.back();
// Кийинки баракка өтүү
history.forward();
// Эки барак артка кайтуу
history.go(-2);
// Үч барак алдыга өтүү
history.go(3);
Мындан тышкары, history объектиси, барак толугу менен кайра жүктөлбөстөн, тарыхтын абалын башкарууга мүмкүндүк берет, pushState жана replaceState ыкмалары аркылуу:
history.pushState(state, title, url): жаңы абалды тарыхка кошот.state: тарых жазуусу менен байланышкан абал объектиси.title: баракча аталышы (көпчүлүк браузерлер аны эске албайт).url: тарых жазуусу менен байланышкан URL.
history.replaceState(state, title, url): учурдагы абалды тарыхта алмаштырат.
Мисал менен pushState:
// Жаңы абалды кошуу
history.pushState({ page: 1 }, "Барак 1", "/page1");
// Толук кайра жүктөбөстөн барактагы аракеттер
// Колдонуучу "артка" баскычын басканда, popstate иш-чарасы болот
window.addEventListener('popstate', function(event) {
console.log('Абал өзгөрдү:', event.state); // { page: 1 }
// Баракча мазмунун абалга ылайык жаңыртуу
});
replaceState менен мисал:
// Учурдагы абалды алмаштыруу
history.replaceState({ tab: 'active' }, "Активдүү кутуча", "/active-tab");
popstate иш-чарасы, сессия тарыхы жазуусу активдешкенде болот.