Rumah hujung hadapan web uni-app Kaedah reka bentuk dan pembangunan untuk UniApp untuk melaksanakan caching luar talian dan ketekunan data

Kaedah reka bentuk dan pembangunan untuk UniApp untuk melaksanakan caching luar talian dan ketekunan data

Jul 04, 2023 pm 10:37 PM
uniapp Kegigihan data Cache luar talian

UniApp ialah rangka kerja pembangunan merentas platform berdasarkan Vue.js yang boleh digunakan untuk membangunkan pelbagai aplikasi, termasuk aplikasi web, aplikasi mudah alih dan aplikasi desktop. Dalam pembangunan sebenar, kami sering menghadapi beberapa masalah, seperti ketidakstabilan rangkaian, akses luar talian pengguna, dll. Untuk meningkatkan pengalaman pengguna, kami perlu melaksanakan caching luar talian dan fungsi kegigihan data dalam UniApp. Artikel ini akan memperkenalkan reka bentuk dan kaedah pembangunan caching luar talian dan ketekunan data dalam UniApp, dan memberikan contoh kod yang sepadan.

1. Reka bentuk dan kaedah pembangunan cache luar talian

Cache luar talian merujuk kepada cache data yang diminta rangkaian secara setempat, dan pengguna boleh terus mengakses data cache tanpa sambungan rangkaian. Dalam UniApp, anda boleh menggunakan uni.setStorageSync dan uni.getStorageSync untuk melaksanakan fungsi caching luar talian.

Pertama, kita perlu mentakrifkan fungsi alat untuk menentukan sama ada cache telah tamat tempoh:

function isCacheExpired(cacheTime) {
  if (!cacheTime) {
    return true;
  }
  const currentTime = new Date().getTime();
  const expireTime = new Date(cacheTime).getTime() + 24 * 60 * 60 * 1000; // 缓存时间为一天
  return currentTime > expireTime;
}
Salin selepas log masuk

Seterusnya, apabila membuat permintaan rangkaian, kita boleh terlebih dahulu menentukan sama ada cache wujud Jika ia wujud dan belum tamat tempoh, data cache akan digunakan secara langsung. Jika tidak, hantar permintaan rangkaian dan cache data yang dikembalikan.

import { isCacheExpired } from '@/utils'

async function fetchData(api, dataKey, cacheKey) {
  const cache = uni.getStorageInfoSync(cacheKey);
  if (cache && !isCacheExpired(cache.time)) {
    return uni.getStorageSync(cacheKey);
  }else{
    const res = await uni.request({
      url: api,
      method: 'GET',
      data: dataKey,
    });
    const data = res.data;
    uni.setStorageSync(cacheKey, { data, time: new Date() });
    return data;
  }
}
Salin selepas log masuk

Apabila menggunakan fungsi fetchData, kita perlu menghantar parameter api, dataKey dan cacheKey. Antaranya, api ialah alamat antara muka permintaan rangkaian, dataKey ialah parameter permintaan, dan cacheKey ialah nilai kunci cache.

2. Reka bentuk dan kaedah pembangunan ketekunan data

Kegigihan data merujuk kepada menyimpan data dalam aplikasi secara tempatan, supaya data masih boleh dibaca pada kali berikutnya aplikasi dibuka. Dalam UniApp, anda boleh menggunakan uni.setStorageSync dan uni.getStorageSync untuk melaksanakan fungsi kegigihan data.

Pertama, kita perlu menentukan objek kedai global untuk menyimpan data yang perlu diteruskan:

const store = {
  state: {
    userInfo: null,
    token: null,
  },
  setUserInfo(userInfo) {
    this.state.userInfo = userInfo;
    uni.setStorageSync('userInfo', userInfo);
  },
  setToken(token) {
    this.state.token = token;
    uni.setStorageSync('token', token);
  },
  init() {
    this.state.userInfo = uni.getStorageSync('userInfo');
    this.state.token = uni.getStorageSync('token');
  },
};
store.init();
export default store;
Salin selepas log masuk

Apabila aplikasi bermula, kita perlu memanggil fungsi init kedai untuk membaca data yang disimpan daripada cache tempatan dan mulakan ia menyimpan objek. Dengan cara ini, walaupun apl ditutup dan dibuka semula, data masih boleh dibaca dengan betul.

Apabila aplikasi perlu mengemas kini data dalam stor, kita bukan sahaja perlu mengemas kini atribut keadaan objek kedai, tetapi juga perlu menyimpan data yang dikemas kini ke cache setempat:

import store from '@/store'

function setUserInfo(userInfo) {
  store.setUserInfo(userInfo);
  // 其他逻辑
}

function setToken(token) {
  store.setToken(token);
  // 其他逻辑
}
Salin selepas log masuk

Dalam coretan kod di atas, fungsi setUserInfo dan fungsi setToken Atribut keadaan objek kedai dikemas kini masing-masing dan fungsi uni.setStorageSync dipanggil untuk menyimpan data ke cache setempat. Dengan cara ini, apabila anda membuka apl seterusnya, data akan dibaca daripada cache setempat.

Ringkasnya, kaedah reka bentuk dan pembangunan untuk melaksanakan caching luar talian dan fungsi kegigihan data dalam UniApp adalah seperti yang diterangkan di atas. Dengan menggunakan fungsi uni.setStorageSync dan uni.getStorageSync dengan betul, kami boleh melaksanakan caching luar talian dan fungsi kegigihan data dan meningkatkan pengalaman pengguna aplikasi. Sudah tentu, dalam pembangunan sebenar, beberapa pelarasan dan pengoptimuman perlu dibuat berdasarkan senario perniagaan tertentu. Saya harap artikel ini dapat memberikan sedikit bantuan kepada semua orang dalam menyelidik dan menggunakan UniApp.

Atas ialah kandungan terperinci Kaedah reka bentuk dan pembangunan untuk UniApp untuk melaksanakan caching luar talian dan ketekunan data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk memulakan pratonton projek uniapp yang dibangunkan oleh webstorm Bagaimana untuk memulakan pratonton projek uniapp yang dibangunkan oleh webstorm Apr 08, 2024 pm 06:42 PM

Langkah untuk melancarkan pratonton projek UniApp dalam WebStorm: Pasang pemalam Alat Pembangunan UniApp Sambung ke tetapan peranti Pratonton pelancaran WebSocket

Mana satu lebih baik, uniapp atau mui? Mana satu lebih baik, uniapp atau mui? Apr 06, 2024 am 05:18 AM

Secara umumnya, uni-app adalah lebih baik apabila fungsi asli yang kompleks diperlukan; Selain itu, uni-app mempunyai: 1. Sokongan Vue.js/JavaScript 2. Komponen asli yang kaya 3. Ekosistem yang baik; Kelemahannya ialah: 1. Isu prestasi; 2. Kesukaran dalam menyesuaikan antara muka. MUI mempunyai: 1. Sokongan Reka Bentuk Bahan 2. Fleksibiliti tinggi 3. Perpustakaan komponen/tema yang luas. Kelemahannya ialah: 1. Kebergantungan CSS; 2. Tidak menyediakan komponen asli 3. Ekosistem kecil.

Apakah kelemahan uniapp Apakah kelemahan uniapp Apr 06, 2024 am 04:06 AM

UniApp mempunyai banyak kemudahan sebagai rangka kerja pembangunan merentas platform, tetapi kelemahannya juga jelas: prestasi dihadkan oleh mod pembangunan hibrid, mengakibatkan kelajuan pembukaan yang lemah, pemaparan halaman dan tindak balas interaktif. Ekosistem tidak sempurna dan terdapat beberapa komponen dan perpustakaan dalam bidang tertentu, yang mengehadkan kreativiti dan merealisasikan fungsi kompleks. Isu keserasian pada platform berbeza terdedah kepada perbezaan gaya dan sokongan API yang tidak konsisten. Mekanisme keselamatan WebView adalah berbeza daripada aplikasi asli, yang mungkin mengurangkan keselamatan aplikasi. Keluaran dan kemas kini aplikasi yang menyokong berbilang platform pada masa yang sama memerlukan berbilang kompilasi dan pakej, meningkatkan kos pembangunan dan penyelenggaraan.

Apakah alat pembangunan yang digunakan oleh uniapp? Apakah alat pembangunan yang digunakan oleh uniapp? Apr 06, 2024 am 04:27 AM

UniApp menggunakan HBuilder

Apakah perbezaan antara uniapp dan flutter Apakah perbezaan antara uniapp dan flutter Apr 06, 2024 am 04:30 AM

UniApp adalah berdasarkan Vue.js, dan Flutter adalah berdasarkan Dart kedua-duanya menyokong pembangunan merentas platform. UniApp menyediakan komponen yang kaya dan pembangunan mudah, tetapi prestasinya dihadkan oleh WebView Flutter menggunakan enjin pemaparan asli dengan prestasi cemerlang, tetapi lebih sukar untuk dibangunkan. UniApp mempunyai komuniti Cina yang aktif, dan Flutter mempunyai komuniti yang besar dan global. UniApp sesuai untuk senario dengan pembangunan pesat dan keperluan prestasi rendah Flutter sesuai untuk aplikasi kompleks dengan penyesuaian tinggi dan prestasi tinggi.

Apakah asas yang diperlukan untuk mempelajari uniapp? Apakah asas yang diperlukan untuk mempelajari uniapp? Apr 06, 2024 am 04:45 AM

pembangunan uniapp memerlukan asas berikut: teknologi bahagian hadapan (HTML, CSS, JavaScript) pengetahuan pembangunan mudah alih (platform iOS dan Android) Node.js asas lain (alat kawalan versi, IDE, simulator pembangunan mudah alih atau pengalaman penyahpepijatan mesin sebenar)

Mana yang lebih baik, pembangunan uniapp atau asli? Mana yang lebih baik, pembangunan uniapp atau asli? Apr 06, 2024 am 05:06 AM

Apabila memilih antara UniApp dan pembangunan asli, anda harus mempertimbangkan kos pembangunan, prestasi, pengalaman pengguna dan fleksibiliti. Kelebihan UniApp ialah pembangunan merentas platform, lelaran pantas, pembelajaran mudah dan pemalam terbina dalam, manakala pembangunan asli lebih unggul dalam prestasi, kestabilan, pengalaman asli dan kebolehskalaan. Timbang kebaikan dan keburukan berdasarkan keperluan projek khusus UniApp sesuai untuk pemula, dan pembangunan asli sesuai untuk aplikasi kompleks yang mengejar prestasi tinggi dan pengalaman yang lancar.

Selesaikan masalah ralat UniApp: tidak dapat mencari kesan animasi 'xxx' Selesaikan masalah ralat UniApp: tidak dapat mencari kesan animasi 'xxx' Nov 25, 2023 am 11:43 AM

Selesaikan masalah ralat UniApp: Tidak dapat mencari kesan animasi 'xxx' UniApp ialah rangka kerja pembangunan aplikasi merentas platform berdasarkan rangka kerja Vue.js, yang boleh digunakan untuk membangunkan aplikasi untuk berbilang platform seperti applet WeChat, H5. , dan Apl. Semasa proses pembangunan, kami sering menggunakan kesan animasi untuk meningkatkan pengalaman pengguna. Walau bagaimanapun, kadangkala anda akan menghadapi ralat: Kesan animasi 'xxx' tidak dapat ditemui. Ralat ini akan menyebabkan animasi gagal berjalan seperti biasa, menyebabkan ketidakselesaan kepada pembangunan. Artikel ini akan memperkenalkan beberapa cara untuk menyelesaikan masalah ini.

See all articles