當前位置:首頁 » 硬碟大全 » js數據分頁緩存
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

js數據分頁緩存

發布時間: 2023-06-30 09:25:43

① 切換標簽後,發現js有緩存,事件多次觸發,如何解決

第二個實例是關於標簽頁切換的,先看一下效果:

這也是一個很常見的交互效果,以往正常的javascript寫法是給各個按鈕綁定事件來切換不同的層,當然也可以用純css寫,給上面的三個切換的層分別添加一個單選按鈕的兄弟節點,再用絕對定位把單選按鈕定位在三個button上面,這樣就可以用:checked偽類來單選按鈕的兄弟元素,即對應的不同的層,我簡單的寫了一下DOM結構,大概就是這樣:

那麼用vue.js實現上述的效果,其實也有兩種途徑,一種使用vue-router,vue-router是vue.js的一個路由組件,在單頁面應用中非常非常流行,如果切換的層數據量非常大的話,比如每個層都要有伺服器進行大量的數據交互,那麼強烈建議使用vue-router,因為vue-router在每次切換路由的過程中,都會自動銷毀(destroyed)前面的組件,這樣在頻繁的操作中頁面也不會卡,而且vue-router也定義了頁面切換過程中的過渡動畫。

如果數據量並不復雜的話,可以直接通過vue.js定義切換狀態來切換不同的層。

首先先把template和css寫好:

其中introce、chatbar、videobar分別代表三個需要跟隨button切換的組件,接下來就可以給vue.js的button節點綁定事件來操控點擊狀態:

點擊不同的button,會讓active的狀態改變,同時這個狀態會作用到button上面,比如讓被點擊的button有個高亮的效果等等。

那麼如何讓active的狀態作用到彈出層呢?其實定義一個computed函數就可以了:

總結

以上所述是小編給大家介紹的vue.js實現標簽頁切換效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
您可能感興趣的文章:Vue.js實現微信過渡動畫左右切換效果vue.js 左側二級菜單顯示與隱藏切換的實例代碼Vue.js tab實現選項卡切換Vue.js組件tab實現選項卡切換Vue.js組件tabs實現選項卡切換效果

② js的分頁原理以及實現步驟是什麼

主要是借鑒了網上一個例子,修改了一些小地方,前端分頁的技巧,表格的數據是已經寫好了,可以前端渲染表格然後再分頁,都是可以的。

其實分頁最關鍵是這兩句:

var startRow = (currentPage - 1) * pageSize+1; //currentPage 為當前頁,pageSize為每頁顯示的數據量
var endRow = currentPage * pageSize;

找到我們需要顯示的行的范圍(starRow~endRow)

ps:這里在跳轉的時候遇到了一個小BUG,就是獲取到的select的value值是string類型的,比如獲取到了1,然後你想再加1的時候就會變成"11" 而不是我們想要的"2",所以這里需要用parseInt( )來轉換一下,小細節需要注意呀!!!

效果圖:


[javascript] view plain print?

  • <!doctypehtml>

  • <html>

  • <head>

  • <metacharset='utf-8'>

  • <styletype="text/css">

  • a{

  • text-decoration:none;

  • }

  • .table2{

  • border:#C8C8C8solid;

  • border-width:1px0px0px1px;

  • background:#F3F0F0;

  • margin-top:25px;

  • }

  • .td0{

  • border:#C8C8C8solid;

  • border-width:001px0;

  • }

  • .td2{

  • border:#C8C8C8solid;

  • border-width:01px1px0;

  • }

  • .barcon{

  • width:1000px;

  • margin:0auto;

  • text-align:center;

  • }

  • .barcon1{

  • font-size:17px;

  • float:left;

  • margin-top:20px;

  • }

  • .barcon2{

  • float:right;

  • }

  • .barcon2ul{

  • margin:20px0;

  • padding-left:0;

  • list-style:none;

  • text-align:center;

  • }

  • .barcon2li{

  • display:inline;

  • }

  • .barcon2a{

  • font-size:16px;

  • font-weight:normal;

  • display:inline-block;

  • padding:5px;

  • padding-top:0;

  • color:black;

  • border:1pxsolid#ddd;

  • background-color:#fff;

  • }

  • .barcon2a:hover{

  • background-color:#eee;

  • }

  • .ban{

  • opacity:.4;

  • }

  • </style>

  • </head>

  • <body>

  • <tablewidth="950"cellpadding="0"cellspacing="0"class="table2"align="center">

  • <thead>

  • <tr>

  • <tdcolspan="3"height="33"class="td0"></td>

  • <tdalign="center"class="td2"><ahref="###">添加用戶</a></td>

  • </tr>

  • <tralign="center">

  • <thwidth="150"height="33"class="td2">序號</th>

  • <thwidth="300"class="td2">用戶名</th>

  • <thwidth="250"class="td2">許可權</th>

  • <thwidth="250"class="td2">操作</th>

  • </tr>

  • </thead>

  • <tbodyid="adminTbody">

  • <tralign="center">

  • <tdclass="td2"height="33"width="150">1</td>

  • <tdclass="td2">admin</td>

  • <tdclass="td2">管理員</td>

  • <tdclass="td2"><ahref="###">修改</a></td>

  • </tr>

  • </tbody>

  • </table>

  • <divid="barcon"class="barcon">

  • <divid="barcon1"class="barcon1"></div>

  • <divid="barcon2"class="barcon2">

  • <ul>

  • <li><ahref="###"id="firstPage">首頁</a></li>

  • <li><ahref="###"id="prePage">上一頁</a></li>

  • <li><ahref="###"id="nextPage">下一頁</a></li>

  • <li><ahref="###"id="lastPage">尾頁</a></li>

  • <li><selectid="jumpWhere">

  • </select></li>

  • <li><ahref="###"id="jumpPage"onclick="jumpPage()">跳轉</a></li>

  • </ul>

  • </div>

  • </div>

  • <scriptsrc="jquery.js"></script>

  • <script>

  • /*動態生成用戶函數

  • num為生成的用戶數量

  • */

  • functiondynamicAddUser(num){

  • for(vari=1;i<=num;i++)

  • {

  • vartrNode=document.createElement("tr");

  • $(trNode).attr("align","center");

  • //序號

  • vartdNodeNum=document.createElement("td");

  • $(tdNodeNum).html(i+1);

  • tdNodeNum.style.width="150px";

  • tdNodeNum.style.height="33px";

  • tdNodeNum.className="td2";

  • //用戶名

  • vartdNodeName=document.createElement("td");

  • $(tdNodeName).html("lzj"+i);

  • tdNodeName.style.width="300px";

  • tdNodeName.className="td2";

  • //許可權

  • vartdNodePri=document.createElement("td");

  • tdNodePri.style.width="250px";

  • tdNodePri.className="td2";

  • varpriText=document.createElement("span");

  • $(priText).css({"display":"inline-block","text-align":"center"});

  • $(priText).text("普通用戶");

  • tdNodePri.appendChild(priText);

  • //操作

  • vartdNodeOper=document.createElement("td");

  • tdNodeOper.style.width="170px";

  • tdNodeOper.className="td2";

  • vareditA=document.createElement("a");

  • $(editA).attr("href","###").text("編輯");

  • $(editA).css({display:"inline-block"});

  • tdNodeOper.appendChild(editA);

  • trNode.appendChild(tdNodeNum);

  • trNode.appendChild(tdNodeName);

  • trNode.appendChild(tdNodePri);

  • trNode.appendChild(tdNodeOper);

  • $("#adminTbody")[0].appendChild(trNode);

  • }

  • }

  • $(function(){

  • dynamicAddUser(80);

  • goPage(1,10);

  • vartempOption="";

  • for(vari=1;i<=totalPage;i++)

  • {

  • tempOption+='<optionvalue='+i+'>'+i+'</option>'

  • }

  • $("#jumpWhere").html(tempOption);

  • })

  • /**

  • *分頁函數

  • *pno--頁數

  • *psize--每頁顯示記錄數

  • *分頁部分是從真實數據行開始,因而存在加減某個常數,以確定真正的記錄數

  • *純js分頁實質是數據行全部載入,通過是否顯示屬性完成分頁功能

  • **/

  • varpageSize=0;//每頁顯示行數

  • varcurrentPage_=1;//當前頁全局變數,用於跳轉時判斷是否在相同頁,在就不跳,否則跳轉。

  • vartotalPage;//總頁數

  • functiongoPage(pno,psize){

  • varitable=document.getElementById("adminTbody");

  • varnum=itable.rows.length;//表格所有行數(所有記錄數)

  • pageSize=psize;//每頁顯示行數

  • //總共分幾頁

  • if(num/pageSize>parseInt(num/pageSize)){

  • totalPage=parseInt(num/pageSize)+1;

  • }else{

  • totalPage=parseInt(num/pageSize);

  • }

  • varcurrentPage=pno;//當前頁數

  • currentPage_=currentPage;

  • varstartRow=(currentPage-1)*pageSize+1;

  • varendRow=currentPage*pageSize;

  • endRow=(endRow>num)?num:endRow;

  • //遍歷顯示數據實現分頁

  • /*for(vari=1;i<(num+1);i++){

  • varirow=itable.rows[i-1];

  • if(i>=startRow&&i<=endRow){

  • irow.style.display="";

  • }else{

  • irow.style.display="none";

  • }

  • }*/

  • $("#adminTbodytr").hide();

  • for(vari=startRow-1;i<endRow;i++)

  • {

  • $("#adminTbodytr").eq(i).show();

  • }

  • vartempStr="共"+num+"條記錄分"+totalPage+"頁當前第"+currentPage+"頁";

  • document.getElementById("barcon1").innerHTML=tempStr;

  • if(currentPage>1){

  • $("#firstPage").on("click",function(){

  • goPage(1,psize);

  • }).removeClass("ban");

  • $("#prePage").on("click",function(){

  • goPage(currentPage-1,psize);

  • }).removeClass("ban");

  • }else{

  • $("#firstPage").off("click").addClass("ban");

  • $("#prePage").off("click").addClass("ban");

  • }

  • if(currentPage<totalPage){

  • $("#nextPage").on("click",function(){

  • goPage(currentPage+1,psize);

  • }).removeClass("ban")

  • $("#lastPage").on("click",function(){

  • goPage(totalPage,psize);

  • }).removeClass("ban")

  • }else{

  • $("#nextPage").off("click").addClass("ban");

  • $("#lastPage").off("click").addClass("ban");

  • }

  • $("#jumpWhere").val(currentPage);

  • }

  • functionjumpPage()

  • {

  • varnum=parseInt($("#jumpWhere").val());

  • if(num!=currentPage_)

  • {

  • goPage(num,pageSize);

  • }

  • }

  • </script>

  • </body>

  • </html>

③ 用js如何在用戶本地緩存一些數據 如何實現

可以利用localStorage來儲存數據,用法也很簡單:
localStorage["key"] = "要儲存的數據";
提取出來也同樣簡單:
var x = localStorage["key"]
key是鍵名,可以自由設定。
需要注意的是,只有支持HTML5的瀏覽器才能使用localStorage

④ js清理手機緩存

在JavaScript中清除手機緩存的方法並不是直接使用JavaScript代碼就能完成的,因為JavaScript自身不具備清除緩存的能力,需廳扮要通過一些特定的API來實現。

可以通過以下步驟清除手機緩存:

1. 使用HTML5中的應用程序緩存(Application Cache)來緩存部分頁面和資源文件,當然,緩存的數據也可以隨時被清除。

2. 使用瀏覽器提供的緩存清除API。不同的瀏宴伏斗覽器提供不同的API來清除緩存,例如Chrome瀏覽器提供了chrome.browsingData.clear API介面,可以通過該介面來清除瀏晌磨覽器緩存。

需要注意的是,清除緩存會導致部分數據丟失,同時清除緩存的方法也因不同的瀏覽器和操作系統而異,所以在具體實現時要仔細查看相關文檔並謹慎操作。

⑤ 如何清理chrome瀏覽器的js緩存

chrome瀏覽器緩存清理方法如下:
1、打開谷歌瀏覽器,點擊下圖箭頭所指,選擇設置

2、在設置頁面中,選擇顯示高級設置,然後找到隱私設置,點擊清除瀏覽數據揪心過了。

⑥ 如何將js從資料庫中渲染出來的數據做成table分頁

您好
如果要在jsp頁面里實現按你要求分頁的話,你可以循環方式這樣寫
for(int i=初始紀錄樹;i<最大記錄數;i++){
list.add(從資料庫取出的又放進去的ArrayList<對象>);
}
之後在從list里取用循環取出並輸出在前台頁面。這里的初始記錄數為(currentPage-1)*pageSize,這里的最大記錄數為currentPage*pageSize。
每次請求都是該頁面,而僅僅是***.jsp?currentPage=?這個問號不同而已。
當然不贊成把JAVA代碼放在JSP頁面,因為它僅僅是用來展示而盡量不要參與邏輯業務。要放在控制層或業務層。比如說去請求servlet。
並且一次取所有數據的分頁並不適合當數據量很大的時候。可以使用資料庫分頁。如mysql 用top,oracle用rownum。

⑦ js如何獲取緩存

1、創建一個cache.js文件,前端頁面,定義那些數據需要一次性拿到前端緩存,定義一個對象來保存這些數據。