Sobes.tech
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 иш-чарасы, сессия тарыхы жазуусу активдешкенде болот.