保存頁面的瀏覽記錄

我的設計思想是將用戶的瀏覽記錄保存到cookie里面,然后根據情況處理。cookie里面的數據格式是json格式,方便根據自己的需要添加或者修改屬性。
引用了3個js文件,下載地址如下。

https://github.com/carhartl/jquery-cookie/blob/master/jquery.cookie.js

https://github.com/douglascrockford/JSON-js/blob/master/json2.js

http://jquery.com/

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <title>瀏覽記錄</title>
 5     <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 6     <script type="text/javascript" src="../js/jquery-1.9.1.min.js"></script>
 7     <script type="text/javascript" src="../js/jquery.cookie.js"></script>
 8     <script type="text/javascript" src="../js/json2.js"></script>
 9     <script type="text/javascript">
10         String.prototype.format = function (args) {
11             if (arguments.length > 0) {
12                 var result = this;
13                 if (arguments.length == 1 && typeof (args) == "object") {
14                     for (var key in args) {
15                         var reg = new RegExp("({" + key + "})", "g");
16                         result = result.replace(reg, args[key]);
17                     }
18                 }
19                 else {
20                     for (var i = 0; i < arguments.length; i++) {
21                         if (arguments[i] == undefined) {
22                             return "";
23                         }
24                         else {
25                             var reg = new RegExp("({[" + i + "]})", "g");
26                             result = result.replace(reg, arguments[i]);
27                         }
28                     }
29                 }
30                 return result;
31             }
32             else {
33                 return this;
34             }
35         }
36 
37         //添加一個新的瀏覽記錄
38         function addHistory(productName, url) {
39             var historyArr = getHistory();
40             historyArr.push({'productName':productName, 'url':url});
41             $.cookie('overviewHistory', JSON.stringify(historyArr), { expires:7, path:'/' });
42         }
43         //獲取所有的瀏覽記錄
44         function getHistory() {
45             var overviewHistory = $.cookie('overviewHistory');
46             if (typeof overviewHistory === "undefined") {
47                 return []
48             } else {
49                 return eval("(" + overviewHistory + ")");
50             }
51         }
52         //將瀏覽記錄顯示到相應的元素里面
53         function updateHistoryEle() {
54             var historyArr = getHistory();
55             historyArr.reverse()
56             //設置最大的顯示數量
57             while (historyArr.length > 10) {
58                 historyArr.pop()
59             }
60             for (i = 0; i < historyArr.length; i++) {
61                 $('<div><a href="{1}">{0}</a></div>'.format(historyArr[i].productName, historyArr[i].url)).appendTo('#history');
62             }
63         }
64 
65         $(function () {
66             addHistory("親的", "www.baidu.com")
67             updateHistoryEle()
68         })
69     </script>
70 </head>
71 <body>
72 <div id="history">
73 
74 </div>
75 </body>
76 </html>

?

轉載于:https://www.cnblogs.com/qinying/archive/2013/06/08/3127140.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/376616.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/376616.shtml
英文地址,請注明出處:http://en.pswp.cn/news/376616.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

開竅小老虎,一步一個腳印之 初識匯編(一)

最近一直浸淫在計算機編程中無法自拔。哲學 認識論中講過。人類的求知的過程是由兩次飛躍。第一是從感性認識到理性認識&#xff1b;第二是從理性認識到實踐。這段話對有些人是適用的。我就是其中的一名。在知乎上求助問題“學計算機要懂匯編嗎&#xff1f;”&#xff0c;地下有…

python腳本 請求數量達到上限,http請求重試

由于在內網發送http請求同一個token會限制次數&#xff0c;所以很容易達到網關流量上限。 業務中使用了多線程并發&#xff0c;一個線程發起一次http請求&#xff0c;得到正確結果后返回。這里采用的策略是&#xff0c;如果解析出來達到流量上限&#xff0c;那么該線程休眠一段…

shell 字符串操作

string"abcABC123ABCabc" 字符串長度: echo ${#string} #15 echo expr length $string #15 索引 用法&#xff1a;expr index $string $substring expr index $string "ABC" #4 提取子串 用法&#xff1a;${string:position} echo ${string:3} #A…

Linux 之目錄 -鳥哥的Linux私房菜

因為利用 Linux 來開發產品或 distributions 的社群/公司與個人實在太多了, 如果每個人都用自己的想 法來配置檔案放置的目錄,那么將可能造成很多管理上的困擾。 你能想象,你進入一個企業之后,所 接觸到的 Linux 目錄配置方法竟然跟你以前學的完全不同嗎? 很難想象吧~所以,后來…

python腳本:向表中插入新數據,刪除表中最舊的數據

一張表存儲歷史數據&#xff0c;最多存儲HISTORY_TABLE_MAX_ROWS條數據&#xff0c;當表中數據未達到HISTORY_TABLE_MAX_ROWS&#xff0c;直接插入&#xff1b;如果達到的話需要保證插入新數據的時候將最舊的數據刪除 這里使用先update最新數據&#xff0c;然后再重新update全表…

精通 VC++ 實效編程280例 - 02 菜單和光標

菜單和關閉時重要的 Windows 資源之一。SDK 中&#xff0c;用 HCURSOR 和 HMENU 分別表示菜單和光標的句柄。MFC 中&#xff0c;CMenu 類封裝了菜單的功能。 23 動態添加和刪除菜單項 添加菜單項可以調用 CMenu::AppendMenu 或 CMenu::InserMenu 函數&#xff0c;刪除菜單項可以…

POJ 1860: Currency Exchange 【SPFA】

套匯問題&#xff0c;從源點做SPFA&#xff0c;如果有一個點入隊次數大于v次&#xff08;v表示點的個數&#xff09;則圖中存在負權回路&#xff0c;能夠套匯&#xff0c;如果不存在負權回路&#xff0c;則判斷下源點到自身的最長路是否大于自身&#xff0c;使用SPFA時松弛操作…

python腳本:判斷字符是否為中文

# 判斷字符是否為中文 def is_chinese(ch):if u\u4e00 < ch < u\u9fff:return Trueelse:return False

Android 廣播 Broadcast學習

Android Broadcast 廣播 進程內本地廣播 如果你是在你的應用之內使用廣播&#xff0c;即不需要跨進程&#xff0c;考慮使用LocalBroadcastManager &#xff0c;這樣更有效率&#xff08;因為不需要跨進程通信&#xff09;&#xff0c;并且你不用考慮一些其他應用可以發送或接收…

python:將時間戳轉換成格式化日期

import time # 將時間戳轉換成格式化日期 def timestamp_to_str(timestampNone, format%Y-%m-%d %H:%M:%S):if timestamp:time_tuple time.localtime(timestamp) # 把時間戳轉換成時間元祖result time.strftime(format, time_tuple) # 把時間元祖轉換成格式化好的時間retur…

WebApp 里Meta標簽大全

1.先說說mate標簽里的viewport&#xff1a; viewport即可視區域&#xff0c;對于桌面瀏覽器而言&#xff0c;viewport指的就是除去所有工具欄、狀態欄、滾動條等等之后用于看網頁的區域。對于傳統WEB頁面來說&#xff0c;980的寬度在iphone上顯示是很正常的&#xff0c;也是滿屏…

python:封裝CRUD操作

# 封裝數據庫操作 def SELECT(db, cursor, sql):try:# 執行SQL語句db.ping(reconnectTrue)cursor.execute(sql)# 獲取所有記錄列表results cursor.fetchall()logging.debug("select commit")except:logging.error(sql)logging.error("select 語句執行出錯"…

我的osu游戲程序設計(oo)

osu是一款社區元素為主旨的音樂游戲,由澳大利亞人Dean Herbert (peppy)獨立制作并運行. 游戲的方法簡單,就是 1. 圈圈(Circle)&#xff1a;圈圈(Circle) 50。沒打中顯示X,并減少生命值。圈中序號的最后一個的300、100會顯示為激300、喝100。2.滑條(Slider) : 在開始端點擊按住不…

影像數據庫調研

參考Paul Graham比較各種編程語言的方法&#xff0c;我們比較各種數據庫的特點如下&#xff1a; Oracle: 我們需要企業級數據庫。 MySQL: Oracle不開源。 PostgreSQL: MySQL的功能不夠多。 SQLite: 你可以把我嵌入到任何地方。這樣&#xff0c;4種數據庫夠大家用了。 MongoDB: …

linux進程間通信快速入門【三】:信號量(XSI、POSIX以及PV原語)

文章目錄XSIsemgetsemop、semtimedopsemctl基于共享內存demo修改XSI信號量的限制PV原語PV控制并發進程數POSIX信號量使用posix命名信號量使用posix匿名信號量參考在前兩篇文章中我們使用的racingdemo都沒有對臨界區代碼進行加鎖&#xff0c;這里我們介紹以下信號量的使用。Linu…

QTableWidget的使用詳細介紹和美工總結(轉)

基本外觀設置 FriendTable->setFrameShape(QFrame::NoFrame); //設置邊框 FriendTable->setHorizontalHeaderLabels(HeadList); 設置表頭 FriendTable->setSelectionMode(QAbstractItemView::SingleSelection); 設置選擇的模式為單選擇 FriendTable->setSelect…

Android programming on Mac 之安裝Eclipse

1.安裝包在此鏈接下載&#xff1a; http://developer.android.com/sdk/index.html google GoAgent翻墻不好用&#xff0c;更新了host文件也不行&#xff0c;整了半天&#xff0c;還是一怒之下續簽了vpn賬號。早知如此&#xff0c;何必折騰。~~~~(>_<)~~~~ 更新文件時…

c++關于虛表的一些筆記

文章目錄1、虛函數表指針2、多態構成的條件3、重載、重寫、重定義 三者區別4、繼承與虛函數5、單繼承中的虛函數表無虛函數覆蓋有虛函數覆蓋6、單繼承中的虛函數表無虛函數覆蓋有虛函數覆蓋參考看《深度探索c對象模型》的時候對虛表有了點疑惑&#xff0c;正好網上有些文章解除…

4、在Shell程序中的使用變量

學習目標變量的賦值變量的訪問變量的輸入 12-4-1 變量的賦值在Shell編程中&#xff0c;所有的變量名都由字符串組成&#xff0c;并且不需要對變量進行聲明。要賦值給一個變量&#xff0c;其格式如下&#xff1a;變量名值。注意&#xff1a;等號()前后沒有空格例如&#xff1a; …

C語言技巧:把單一元素的數組放在末尾,struct可以擁有可變大小的數組

《C 對象模型》第19頁有這樣一句話 C程序員的巧計有時候卻成為c程序員的陷阱。例如把單一元素的數組放在一個struct的末尾&#xff0c;于是每個struct objects可以擁有可變數組的數組&#xff1a; struct mumble {/* stuff */char pc[1]; };//從文件或標準輸入裝置中取得一個…