1. 程式人生 > >“燈塔-黨建線上”中《黨的十九大精神學習競賽》答題競賽的前端分析(二)

“燈塔-黨建線上”中《黨的十九大精神學習競賽》答題競賽的前端分析(二)

    《黨的十九大精神學習競賽》分為正式答題模擬答題環節,我們先從模擬答題環節開始看。

    下面就是大家熟悉的答題頁面:


    就像大家所熟知的那樣,每答完一道題目,需要手動點選“下一題”,才出現下一題的內容。通過開發者工具,分析頁面的HTML元素,可以發現所有題目是以list列表的形式出現的:


    也就是說,只要分析整個頁面原始碼,完全可以得到20道題目的題幹,同時找出正確的選項。分析頁面原始碼的做法很常規,但我們應該想到的是,題目是從題庫裡面隨機提取的,選項也是打亂順序的,也就是說,生產HTML頁面之前,一定會有資料互動行為。因此,按照慣例,使用開發者工具中的Network,分析網頁請求。


    居然什麼也沒找到!當然,這很正常。有可能在點選“模擬答題”按鈕後,獲取到了題目資料,然後頁面進行了重定向,而Network預設並沒有儲存重定向前的記錄。

    現在,如果我們要再開啟重定向記錄,硬要分析出來相應的網路請求,著實沒有必要。前文說過,“燈塔-黨建線上”使用了HTML5的新特性,其中之一就是Session Storage。進入開發者工具的Application標籤,檢視Storage下Session Storage中的http://xxjs.dtdjzx.gov.cn,如下圖:


      有一個名為allData的Key,其Value是json字串,具體內容為:


    你沒看錯,這就是題目和選項,其中有一個為名optionType的Key,其Value值就是正確答案。

    到這裡就一目瞭然了:編寫相應的程式碼獲取每一個optionType的Value值,在Console中執行後,可以直接選擇正確的答案,甚至不需要題目跟選項!

    Html5 的Web儲存功能,為前端開發者提供了一種新的選擇,這裡只是分析其中一個很簡單的應用,希望能大家通過本例來體會其功能。

繼續閱讀: