日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

JavaScript中對于SPA單頁面的理解

瀏覽:317日期:2022-06-02 08:58:45
目錄
  • 一、什么是SPA
  • 二、SPA和MPA的區別
    • 單頁應用與多頁應用的區別
    • 單頁應用優缺點
  • 三、實現一個SPA
    • 四、如何給SPA做SEO

      一、什么是SPA

      SPA(single-page application),翻譯過來就是單頁應用SPA是一種網絡應用程序或網站的模型,它通過動態重寫當前頁面來與用戶交互,這種方法避免了頁面之間切換打斷用戶體驗在單頁應用中,所有必要的代碼(HTML、JavaScriptCSS)都通過單個頁面的加載而檢索,或者根據需要(通常是為響應用戶操作)動態裝載適當的資源并添加到頁面頁面在任何時間點都不會重新加載,也不會將控制轉移到其他頁面舉個例子來講就是一個杯子,早上裝的牛奶,中午裝的是開水,晚上裝的是茶,我們發現,變的始終是杯子里的內容,而杯子始終是那個杯子結構如下圖

      我們熟知的JS框架如react,vue,angular,ember都屬于SPA

      二、SPA和MPA的區別

      上面大家已經對單頁面有所了解了,下面來講講多頁應用MPA(MultiPage-page application),翻譯過來就是多頁應用在MPA中,每個頁面都是一個主頁面,都是獨立的當我們在訪問另一個頁面的時候,都需要重新加載html、css、js文件,公共文件則根據需求按需加載如下圖

      單頁應用與多頁應用的區別

      單頁面應用(SPA)多頁面應用(MPA)組成一個主頁面和多個頁面片段多個主頁面刷新方式局部刷新整頁刷新url模式哈希模式歷史模式SEO搜索引擎優化難實現,可使用SSR方式改善容易實現數據傳遞容易通過url、cookie、localStorage等傳遞頁面切換速度快,用戶體驗良好切換加載資源,速度慢,用戶體驗差維護成本相對容易相對復雜

      單頁應用優缺點

      優點:

      • 具有桌面應用的即時性、網站的可移植性和可訪問性
      • 用戶體驗好、快,內容的改變不需要重新加載整個頁面
      • 良好的前后端分離,分工更明確

      缺點:

      • 不利于搜索引擎的抓取
      • 首次渲染速度相對較慢

      三、實現一個SPA

      • 監聽地址欄中hash變化驅動界面變化
      • pushsate記錄瀏覽器的歷史,驅動界面發送變化

      實現

      hash模式

      核心通過監聽url中的hash來進行路由跳轉

      // 定義 Router  class Router {      constructor () {  this.routes = {}; // 存放路由path及callback  this.currentUrl = "";  // 監聽路由change調用相對應的路由回調  window.addEventListener("load", this.refresh, false);  window.addEventListener("hashchange", this.refresh, false);      }      route(path, callback){  this.routes[path] = callback;      }      push(path) {  this.routes[path] && this.routes[path]()      }  }  // 使用 router  window.miniRouter = new Router();  miniRouter.route("/", () => console.log("page1"))  miniRouter.route("/page2", () => console.log("page2"))  miniRouter.push("/") // page1  miniRouter.push("/page2") // page2  

      history模式

      history模式核心借用HTML5 history api,api提供了豐富的router相關屬性先了解一個幾個相關的api

      • history.pushState瀏覽器歷史紀錄添加記錄
      • history.replaceState修改瀏覽器歷史紀錄中當前紀錄
      • history.popStatehistory發生變化時觸發
      // 定義 Router  class Router {      constructor () {  this.routes = {};  this.listerPopState()      }      init(path) {  history.replaceState({path: path}, null, path);  this.routes[path] && this.routes[path]();      }      route(path, callback){  this.routes[path] = callback;      }      push(path) {  history.pushState({path: path}, null, path);  this.routes[path] && this.routes[path]();      }      listerPopState () {  window.addEventListener("popstate" , e => {      const path = e.state && e.state.path;      this.routers[path] && this.routers[path]()  })      }  }  // 使用 Router  window.miniRouter = new Router();  miniRouter.route("/", ()=> console.log("page1"))  miniRouter.route("/page2", ()=> console.log("page2"))  // 跳轉  miniRouter.push("/page2")  // page2  

      四、如何給SPA做SEO

      下面給出基于VueSPA如何實現SEO的三種方式

      SSR服務端渲染

      將組件或頁面通過服務器生成html,再返回給瀏覽器,如nuxt.js

      靜態化

      目前主流的靜態化主要有兩種:

      (1)一種是通過程序將動態頁面抓取并保存為靜態頁面,這樣的頁面的實際存在于服務器的硬盤中

      (2)另外一種是通過WEB服務器的URL Rewrite的方式,它的原理是通過web服務器內部模塊按一定規則將外部的URL請求轉化為內部的文件地址,一句話來說就是把外部請求的靜態地址轉化為實際的動態頁面地址,而靜態頁面實際是不存在的。

      這兩種方法都達到了實現URL靜態化的效果

      使用Phantomjs針對爬蟲處理

      原理是通過Nginx配置,判斷訪問來源是否為爬蟲,如果是則搜索引擎的爬蟲請求會轉發到一個node server,再通過PhantomJS來解析完整的HTML,返回給爬蟲。下面是大致流程圖

      到此這篇關于JavaScript中對于SPA單頁面的理解的文章就介紹到這了,更多相關JS SPA單頁面內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

      標簽: JavaScript
      日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
      免费看的黄色欧美网站| 美女在线视频一区| 日韩和欧美一区二区三区| 亚州av乱码久久精品蜜桃| 极品av在线| 亚洲黄色中文字幕| 樱桃视频成人在线观看| 中国字幕a在线看韩国电影| 精品免费视频| 日韩一区自拍| 久久中文字幕二区| 99在线精品免费视频九九视| 国产精品国码视频| 亚洲日产av中文字幕| 99视频一区| 国产模特精品视频久久久久| 在线人成日本视频| 久久99精品久久久野外观看| 日日夜夜免费精品视频| 在线日韩成人| 中文字幕成人| 日韩三级精品| 久久影院一区二区三区| 国产69精品久久| 丝袜美腿一区| 亚洲欧美日本日韩| 亚洲最大av| 青青草伊人久久| 久久三级毛片| 99精品视频在线| 亚洲欧美日韩国产一区| 伊人成人在线视频| 日韩精品视频网站| 久久精品国产亚洲aⅴ| 国产成人久久精品麻豆二区| 久久九九国产| 蜜桃视频第一区免费观看| 国产女人18毛片水真多18精品| 国产一区二区三区黄网站 | 国产精品视频一区二区三区四蜜臂 | 婷婷综合国产| 久久精品超碰| 国产精品成久久久久| 91精品蜜臀一区二区三区在线 | 久久男人天堂| 蜜桃传媒麻豆第一区在线观看| 清纯唯美亚洲综合一区| 国产精品午夜一区二区三区| av亚洲一区二区三区| 久久99国产精品视频| 久久中文字幕一区二区| 老鸭窝一区二区久久精品| 福利一区和二区| 亚洲国产专区校园欧美| 欧美特黄视频| 99国产精品视频免费观看一公开| 香蕉久久99| 日本中文字幕不卡| 国产精品夜夜夜| 国产精品原创| 欧美久久精品一级c片| 欧美+日本+国产+在线a∨观看| 久久久国产亚洲精品| 婷婷精品久久久久久久久久不卡| 日韩一区二区三区免费播放| 婷婷综合福利| 亚洲欧美日韩综合国产aⅴ| 日韩专区精品| 久久久国产精品网站| 久久国产精品久久久久久电车| 国产精品久久久久久av公交车| 久久影视一区| 精品亚洲美女网站| 精品视频一区二区三区在线观看| 免费国产自线拍一欧美视频| 婷婷激情久久| 日韩免费福利视频| 婷婷综合六月| 午夜精品成人av| 久久狠狠婷婷| 99re国产精品| aa亚洲婷婷| 中文字幕av一区二区三区人| 亚洲精品看片| 国产精品一区二区三区av| 日韩一区精品| 日本在线视频一区二区| 少妇高潮一区二区三区99| 日本欧美韩国一区三区| 国产欧美日韩在线一区二区 | 精品久久影院| 一二三区精品| 日韩avvvv在线播放| 亚洲综合精品| 欧美日韩国产在线观看网站| 日韩黄色av| 91精品二区| 国产精品久久久久久久久久齐齐 | 大香伊人久久精品一区二区| 亚洲人成在线网站| 久久不射网站| 美女在线视频一区| 久久aⅴ国产紧身牛仔裤| 久久精品国产福利| 久久精品网址| 另类欧美日韩国产在线| 久久91导航| 日本va欧美va精品发布| 老司机精品在线| 久久国产精品久久w女人spa| 国产午夜精品一区在线观看| 丝袜美腿亚洲色图| 久久一区二区三区电影| 久久久久久色 | 亚洲深夜福利在线观看| 精品视频在线观看网站| 国产欧美一区二区色老头| 日本视频一区二区| 美女高潮久久久| 国产精品亚洲二区| 夜夜精品视频| 首页国产精品| 国产精品nxnn| 欧美另类中文字幕| 国产精品一区二区三区www| 日韩国产精品久久久久久亚洲| 一区二区日韩免费看| av不卡在线| 久久亚洲图片| 尤物网精品视频| 香蕉久久久久久久av网站| 午夜一级久久| 亚洲人成亚洲精品| 日韩欧美在线精品| 91午夜精品| 麻豆成人在线观看| 98精品视频| 欧洲亚洲一区二区三区| 欧美日韩国产免费观看| 男人操女人的视频在线观看欧美| 亚洲久久一区| 国产精品久久久免费| 国产一区二区三区不卡视频网站 | 最新国产精品久久久| 日韩一区二区三区免费视频 | 蜜桃一区二区三区在线观看| 亚洲免费资源| 国产欧美一区二区色老头| 激情综合五月| 黄色亚洲在线| 欧美三区不卡| 亚洲精品成人一区| 亚洲有吗中文字幕| 国产午夜久久av| 国产69精品久久| 精品一区三区| 石原莉奈一区二区三区在线观看| 国产欧美三级| 日韩欧美中文| 性一交一乱一区二区洋洋av| 日韩精品亚洲aⅴ在线影院| 久久久久久亚洲精品美女| 麻豆网站免费在线观看| 亚洲欧洲午夜| 日本欧美在线| 精品国产成人| 色婷婷狠狠五月综合天色拍| 亚洲国产专区校园欧美| 青青青国产精品| 欧美日韩精品免费观看视完整 | 国产精品黄色片| 欧美亚洲国产激情| 天堂va在线高清一区| 国产一区二区三区四区五区传媒| 亚洲经典在线| 久久精品天堂| 一区二区精彩视频| 国产精品久久久久久久久妇女| 亚洲欧美视频| 久久字幕精品一区| 国内精品福利| 国产日韩一区| 五月精品视频| 国产精品一区二区三区av麻| 亚洲婷婷在线| 蜜桃久久久久| 免费在线观看不卡| 精品99久久| 色8久久久久| 久久五月天小说| 国产精品中文| 国产精品腿扒开做爽爽爽挤奶网站| 国产高清精品二区| 丝袜美腿一区| 国产欧美丝祙| 国产亚洲福利| 日产精品一区二区| 91p九色成人| 最新亚洲激情| 深夜福利视频一区二区|