全部产品
Search
文档中心

Application Real-Time Monitoring Service:Data Pra-laporan

更新时间:Jul 02, 2025

Pelaporan data dapat gagal dalam situasi tertentu, seperti ketika inisialisasi SDK belum selesai. Topik ini menjelaskan cara menggunakan SDK dari Application Real-Time Monitoring Service (ARMS) untuk pemantauan frontend guna melakukan pra-laporan data.

Skenario di mana kegagalan pelaporan data terjadi

Kegagalan pelaporan data dapat terjadi dalam skenario berikut:

  • Beberapa data perlu dilaporkan saat halaman sedang dimuat, tetapi inisialisasi SDK belum selesai atau hasil inisialisasi tidak dapat ditentukan.
  • Metode setConfig dipanggil dalam logika inisialisasi aplikasi. Namun, pemuatan mungkin belum selesai karena SDK dimuat secara asinkron.

Solusi

SDK menambahkan atribut pipe ke objek __bl untuk menyimpan informasi pra-panggilan dalam variabel __bl.pipe. Kode berikut memberikan contoh:

__bl.pipe = [
    // Laporkan halaman HTML saat ini sebagai permintaan API.
    ['api', '/index.html', true, performance.now, 'SUCCESS'], // Ini setara dengan __bl.api(api, success, time, code, msg).

    // Setelah inisialisasi SDK selesai, aktifkan resolusi aplikasi satu halaman (SPA) otomatis.
    ['setConfig', {enableSPA: true}]
];            

Untuk melaporkan satu catatan data, jalankan perintah berikut:

__bl.pipe = ['msg', 'Saya adalah pesan generik lainnya'];          

Nomor nol dalam array adalah nama metode, diikuti oleh parameter input. Setelah inisialisasi SDK selesai, SDK memanggil metode dan parameter yang dilampirkan ke window.__bl.pipe satu per satu.

Catatan Sebelum inisialisasi SDK selesai, jika nilai parameter __bl.pipe diatur beberapa kali, nilai terakhir yang diatur akan berlaku.

Jika Anda tidak yakin apakah inisialisasi SDK sudah selesai dan ingin menghindari penambahan logika penilaian yang rumit, Anda dapat memanggil metode pipe setelah SDK diinisialisasi. Fitur ini didukung oleh Internet Explorer 9 dan versi lebih baru.

Sebagai contoh, dalam SPA, setelah Anda menentukan autoSend: false, data tampilan halaman (PV) dilaporkan untuk pertama kalinya setelah inisialisasi aplikasi. Namun, status inisialisasi tidak dapat ditentukan.

// Tetapkan nama halaman menjadi homepage dan laporkan data PV.
__bl.pipe = ['setPage', 'homepage'];