Vue 影戲信息影評(豆瓣,貓眼)

Vue影戲信息影評網站

此網站是我的畢業設想,題目是“基於HTML5的影戲信息匯總弄網站”,因為近來在看Vue.js,所以就想用Vue.js來構建一個前端網站,這裏code就不大篇幅的寫了,主要講一下網站的功用和所用到的手藝棧,人人假若有題目標話能夠去 GitHub代碼網址上檢察或許在下方留言。

**手藝棧**: Vue.js+ThinkPHP+MySql+Vue-router+Node.js

網站主要功用分為:

影戲展現
主假如從第三方平台拉取影戲信息,然後舉行圖片和影戲名字展現另有輪播展現。展現分為正在熱映、北美票房榜、Top25等三個板塊,个中正在熱映的數據來自貓眼,其他的均來自豆瓣影戲。界面以下圖:
《Vue 影戲信息影評(豆瓣,貓眼)》

影戲概況展現

此功用是供應影戲概況的界面,包含演員、上映時候、導員、劇情簡介、宣揚視頻(宣揚視頻因為豆瓣官方的API限制沒法獵取,所以只要正在熱映板塊-從貓眼獵取的影戲信息才有)。界面以下圖:

《Vue 影戲信息影評(豆瓣,貓眼)》

在線購票(基於貓眼第三方平台)

在線購票是基於第三方平台貓眼完成的,經由過程對應的影戲id完成在線購票。界面以下圖:

《Vue 影戲信息影評(豆瓣,貓眼)》

(僅限於近來正在熱映的影戲,別的的影戲人人能夠在網上寓目)

在線批評

開闢這個版塊的目標是為了給影戲愛好者供應一個相互交換的平台,從而也能夠增添用戶對網站的粘性。界面以下圖:

《Vue 影戲信息影評(豆瓣,貓眼)》

碰到的題目及解決要領

此網站的北美票房榜和top25的數據都是來自於豆瓣開闢者開放平台供應給開闢者的一些API,然則這些API並沒有完整交給開闢者,而是對个中的一些API做了限制

1 數據要求權限

  在API中指出,豆瓣將用戶的運用權限分成了3類,分別是公然、高等、商務,關於個人開闢只能運用公然,公然的運用前提是:一切開闢者都可請求,考核用過。限制40次要求/分鐘。實在這個要求數據一般狀況下是能夠運用的。然則在開闢過程當中,發明當要求次數凌駕這個次數后,豆瓣會將開闢者的ip封閉,致使沒法要求,為了防備這類狀況發作,本網站運用了HTML5新供應的當地存儲數據要領sessionStorage。在初次翻開網站后,將對應模塊的數據信息存儲的sessionStorage中,噹噹地存儲中有對應的數據,則從當地存儲讀取,反之接見對應的API獵取數據。

2 圖片資本加載
   在開闢過程當中,我發明從API中獵取的圖片資本沒法一般在網站頁面中舉行襯着。經由過程百度發明,豆瓣在圖片資本上做了防盜鏈,圖片服務器經由過程搜檢條用該圖片的是誰人網址,假如不是它許可的,就不給顯現,防備盜圖。同過圖片緩存網站https://images.weserv.nl/#qui…

3 axios組件
   axios是一個基於Promise開闢的運用組件,是為瀏覽器和Node.js設想開闢的HTTP客戶端要求組件。它封裝了和HTTP相干的大批操縱,在Web App中運用起來異常的輕易。Vue2.0官方發起不再運用vue-resource,轉而替代的是運用axios組件舉行HTTP操縱開闢。在運用get要領要求的過程當中沒有碰到題目,然則當要求要領為post是,要求數據失足,背景獵取不到數據,然則經由過程瀏覽器開闢者東西能夠看到是有數據傳輸過去了。經由過程在網上網絡種種弄材料,axios默許是經由過程Request Payload的情勢傳送了參數,而不是我們熟習的form-data情勢,故有之前獵取form-data的要領獵取不到,能夠經由過程藉助於第三方開源qs庫為數據格式化。代碼以下:

 axios.post('http://localhost:8088/video/index.php?g=Video&m=users&a=addComment', qs.stringify({
                type: _this.type,
                video_id: _this.id,
                uid: getCookie('uid'),
                uname: getCookie('uname'),
                content: _this.commentText
              }), {headers: {
                'Content-Type': 'application/x-www-form-urlencoded'
              }})
                .then((res) => {
                  if (res.data.success === true) {
                    this.$nextTick(() => {
                      _this.comment.push(res.data.response)
                      _this.commentText = ''
                    })
                  } else {
                    alert(res.data.info)
                  }
                })

備註
參考網站:

  1. 貓眼數據API
  2. 豆瓣影戲API

若有任何版權題目,請實時聯絡本人或留言,將會在第一時候舉行處置懲罰

    原文作者:LaughingZhu
    原文地址: https://segmentfault.com/a/1190000015311803
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞