當前位置:首頁 » 存儲配置 » jquery數據存儲

jquery數據存儲

發布時間: 2022-10-16 20:34:09

『壹』 jquery 本地存儲大量數據,並支持後續操作的方法!

你的數據有多大?幾千行的話 gzip 一下也不會花超過幾秒(大概不需要),不需要甚麼特別的處理。再大的話就視乎實際數量和所需的處理方式,簡單的 localstorage 復雜的自己看看是用自己的方法處理(一般較快較省記憶)還是去用 js 實作的資料庫(一般較方便)。這也是個編程階段,自己多試試看不同的處理方法那才會有長進,別人給的意見再好都不是你自己的經驗。

『貳』 jquery, "使用data方法可以避免在DOM中存儲數據" 這句話什麼意思

使用data方法可以避免在DOM中存儲數據,有些前端開發者喜歡使用HTML的屬性來存儲數據:
$('selector').attr('alt', 'data being stored');
//之後可以這樣讀取數據:
$('selector').attr('alt');

使用」alt」屬性來作為參數名存儲數據其實對於HTML來說是不符合語義的,我們可以使用jQuery的data方法來為頁面中的某個元素存儲數據。

$('selector').data('參數名', '要存儲的數據');

//之後這樣取得數據:
$('selector').data('參數');

這個data方法能讓你自己明明數據的參數,更語義更靈活,你可以在頁面上的任何元素存儲數據信息。

網上找的,好吧,我只能跟樓上一個回答,是的,還真就是這個意思

『叄』 jquery, "使用data方法可以避免在DOM中存儲數據" 這句話什麼意思

使用data方法可以避免在DOM中存儲數據,有些前端開發者喜歡使用HTML的屬性來存儲數據:
$('selector').attr('alt',
'data
being
stored');
//之後可以這樣讀取數據:
$('selector').attr('alt');
使用」alt」屬性來作為參數名存儲數據其實對於HTML來說是不符合語義的,我們可以使用jQuery的data方法來為頁面中的某個元素存儲數據。
$('selector').data('參數名',
'要存儲的數據');
//之後這樣取得數據:
$('selector').data('參數');
這個data方法能讓你自己明明數據的參數,更語義更靈活,你可以在頁面上的任何元素存儲數據信息。
網上找的,好吧,我只能跟樓上一個回答,是的,還真就是這個意思。

『肆』 jQuery的$.Ajax()返回的數據如何才能保存給全局變數

要存全局變數的壞處就是怕使用的過程中,你的值還沒拿到,而你又調用了這個變數。造成意想不到的麻煩。
建議存session、cookie、localStorage、sessionStorage裡面都可以
然後定義個方法去拿就可以了

varget=function(){
returnlocalStorage.getItem("a")||"";
}
vara=get();
console.log(a);//應該是偽空
setTimeout(function(){
console.log(a);
},5000);//等待5秒再試試。應該拿到了
$.ajax({
....//省略多行
success:function(d){
localStorage.setItem("a",d);
}
});

『伍』 jquery data可以存多大數據

jquery中data() 方法向被選元素附加數據,或者從被選元素獲取數據。
jquery中data() 方法向被選元素附加數據,或者從被選元素獲取數據。這使我們通過HTML自定義屬性,操作數據,顯得非常方便。通常我們也會通過給html自定義屬性這樣的做法,來存儲和操作數據。在jquery中也給我們
提供了data(name,value)這樣的方法,來非常方便的實現。有了data()這個方法,你就可以很方便的在一個html標簽中添加data-*這樣的自定義屬性。接下來,就data()方法簡單的做下了解。
以下是摘自w3school中對data用法的說明:
data方法從元素中讀取數據的語法:
$(selector).data(name) name:可選。規定要取回的數據的名稱。

如果沒有規定名稱,則該方法將以對象的形式從元素中返回所有存儲的數據。

data方法從元素中存儲數據的語法:
$(selector).data(name,value)

name:必需。規定要設置的數據的名稱。

value:必需。規定要設置的數據的值。

當然,我們在這里,也可以把一個包含鍵/值對的對象,向被選元素添加數據。語法如下:

$(selector).data(object)

object:必需。規定包含名稱/值對的對象。

Html代碼如下:
data方法之讀取數據:

<div id="divName" data-name="lichaoqiang">單個數據:data-name="lichaoqiang"</div>
<div id="divJson" data-user='{"user_id":20141111,"user_name":"lichaoqiang"}'>存儲json數據:{"user_id":20141111,"user_name":"lichaoqiang"}</div>
<script type="text/javascript">
console.log($("#divName").data("name")); //通過name輸出單個數據
console.log($("#divJson").data("user").user_name); //通過name輸出json數據

『陸』 jquery data數據存儲在哪兒

jquery中data() 方法向被選元素附加數據,或者從被選元素獲取數據。 jquery中data() 方法向被選元素附加數據,或者從被選元素獲取數據。這使我們通過HTML自定義屬性,操作數據,顯得非常方便。

『柒』 jquery.data為什麼可以避免內存泄露內存泄露是怎麼產生的

存泄漏可以定義為一個應用,由於某些原因不再需要的內存沒有被操作系統或者空閑內存池回收。編程語言支持多種管理內存的方式。這些方式可能會減少內存泄漏的幾率。然而,某一塊內存是否沒有用到實際上是一個不可判定的問題。換句話說,只有開發者可以弄清一塊內存是否可以被操作系統回收。某些編程語言提供了幫助開發者做這個的特性。其他一些語言期望開發者可以完全明確什麼時候一塊內存是沒被使用的。
1.意外的全局變數
JavaScript的目標是開發一種看起來像Java但足夠自由的被初學者使用的語言。JavaScript自由的其中一種方式是它可以處理沒有聲明的變數:一個未聲明的變數的引用在全局對象中創建了一個新變數。在瀏覽器的環境中,全局對象是window。也就是說:
123
function foo(arg) {bar = "this is a hidden global variable";}

實際上是:
123
function foo(arg) {window.bar = "this is an explicit global variable";}

如果bar是僅在foo函數作用域內承載引用,並且你忘記用var來聲明的變數,一個意外的全局變數就被創建了。在這個例子中,泄漏一個單一字元串不會有太大害處,但這的確是不好的。
另一種意外全局變數被創建的方式是通過this:
1234567
function foo() {this.variable = "potential accidental global";}// Foo called on its own, this points to the global object (window)// rather than being undefined.foo();

為了阻止這種錯誤發生,在你的Javascript文件最前面添加'use strict;'。這開啟了解析JavaScript的阻止意外全局的更嚴格的模式。
全局變數的一個注意事項:
即使我們談了不明的全局變數,仍然存在很多代碼被顯式的全局變數填充的情況。這是通過定義不可收集的情況(除非清零或重新賦值)。特別的,用來臨時存儲和處理大量信息的全局變數會引起關注。如果必須用全局變數來存儲很多數據,在處理完之後,確保對其清零或重新賦值。 一個在與全局連接上增加內存消耗常見的原因是緩存)。 緩存存儲重復被使用的數據。為此,為了有效,緩存必須有其大小的上限。飆出限制的緩存可能會因為內容不可被回收,導致高內存消耗。
2.被遺忘的計時器或回調
在JavaScript中setInterval的使用相當常見。其他庫提供觀察者和其他工具以回調。這些庫中大多數,在引用的實例變成不可訪問之後,負責讓回調的任何引用也不可訪問。在setInterval的情況下,這樣的代碼很常見:
12345678
var someResource = getData();setInterval(function() {var node = document.getElementById('Node');if(node) {// Do stuff with node and someResource.node.innerHTML = JSON.stringify(someResource));}}, 1000);

這個例子表明了跳動的計時器可能發生什麼:計時器使得節點或數據的引用不再被需要了。代表node的對象將來可能被移除,使得整個塊在間隔中的處理不必要。然而,處理函數,由於間隔仍然是活躍的,不能被回收(間隔需要被停掉才能回收)。如果間隔處理不能被回收,它的依賴也不能被回收。那意味著可能存儲著大量數據的someResource,也不能被回收。
觀察者情況下,一旦不被需要(或相關的對象快要訪問不到)就創建明確移除他們的函數很重要。在過去,這由於特定瀏覽器(IE6)不能很好的管理循環引用(下面有更多相關信息),曾經尤為重要。現如今,一旦觀察對象變成不可訪問的,即使收聽者沒有明確的被移除,多數瀏覽器可以並會回收觀察者處理函數。然而,它保持了在對象被處理前明確的移除這些觀察者的好實踐。例如:
12345678910111213
var element = document.getElementById('button');function onClick(event) {element.innerHtml = 'text';}element.addEventListener('click', onClick);// Do stuffelement.removeEventListener('click', onClick);element.parentNode.removeChild(element);// Now when element goes out of scope,// both element and onClick will be collected even in old browsers that don't// handle cycles well.

一條關於對象觀察者及循環引用的筆記
觀察者和循環引用曾經是JavaScript開發者的禍患。這是由於IE垃圾回收的一個bug(或者設計決議)出現的情況。IE的老版本不能檢測到DOM節點和JavaScript代碼間的循環引用。 這是一個通常為觀察到的保留引用(如同上面的例子)的觀察者的典型。 也就是說,每次在IE中對一個節點添加觀察者的時候,會導致泄漏。這是開發者在節點或空引用之前開始明確的移除處理函數的原因。 現在,現代瀏覽器(包括IE和MS Edge)使用可以剪裁這些循環和正確處理的現代垃圾回收演算法。換言之,在使一個節點不可訪問前,調用removeEventLister不是嚴格意義上必須的。
像Jquery一樣的框架和庫做了在處置一個節點前(當為其使用特定的API的時候)移除監聽者的工作。這被在庫內部處理,即使在像老版本IE一樣有問題的瀏覽器裡面跑,也會確保沒有泄漏產生。
3. 超出DOM引用
有時存儲DOM節點到數據結構中可能有用。假設你想要迅速的更新一個表格幾行內容。存儲每個DOM行節點的引用到一個字典或數組會起作用。當這發生是,兩個對於同個DOM元素的引用被留存:一個在DOM樹中,另外一個在字典中。如果在將來的某些點你決定要移除這些行,需要讓兩個引用都不可用。

var elements = {button: document.getElementById('button'),image: document.getElementById('image'),text: document.getElementById('text')};function doStuff() {image.src = 'http://some.url/image';button.click();console.log(text.innerHTML);// Much more logic}function removeButton() {// The button is a direct child of body.document.body.removeChild(document.getElementById('button'));// At this point, we still have a reference to #button in the global// elements dictionary. In other words, the button element is still in// memory and cannot be collected by the GC.}

對此的額外考慮,必須處理DOM樹內的內部節點或葉子節點。假設你在JavaScript代碼中保留了一個對於特定的表格內節點(一個td標簽)的引用。在將來的某個點決定從DOM中移除這個表格,但是保留對於那個節點的引用。直觀的,會假設GC會回收除那個節點之外的每個節點。在實踐中,這不會發生的:這個單節點是那個表格的子節點,子節點保留對父節點引用。換句話說,來自JavaScript代碼的表格元素的引用會引起在內存里存整個表格。當保留DOM元素的引用的時候,仔細考慮下。
4.閉包
一個JavaScript開發的關鍵點是閉包:從父級作用域捕獲變數的匿名函數。很多開發者發現,由於JavaScript runtime的實現細節,有以一種微妙的方式泄漏的可能,這種特殊的情況:
123456789101112131415
var theThing = null;var replaceThing = function () {var originalThing = theThing;var unused = function () {if (originalThing)console.log("hi");};theThing = {longStr: new Array(1000000).join('*'),someMethod: function () {console.log(someMessage);}};};setInterval(replaceThing, 1000);

這個代碼片段做了一件事:每次replaceThing被調用的時候,theThing獲取到一個包括一個大數組和新閉包(somMethod)的新對象。同時,變數unused保留了一個有originalThing(theThing從之前的對replaceThing的調用)引用的閉包。已經有點疑惑了,哈?重要的是一旦一個作用域被在同個父作用域下的閉包創建,那個作用域是共享的。這種情況下,為閉包somMethod創建的作用域被unused共享了。unused有一個對originalThing的引用。即使unused從來沒被用過,someMethod可以通過theTing被使用。由於someMethod和unused共享了閉包作用域,即使unused從來沒被用過,它對originalThing的引用迫使它停留在活躍狀態(不能回收)。當這個代碼片段重復運行的時候,可以看到內存使用穩步的增長。GC運行的時候,這並不會減輕。本質上,一組關聯的閉包被創建(同unused變數在表單中的根節點一起),這些閉包作用域中每個帶了大數組一個非直接的引用,導致了大型的泄漏。

『捌』 jquery實現點擊文字可編輯並修改保存至資料庫

這個方法網上可以查到很多,但是好多隻有點擊文字編輯並保持,但是沒有完整的代碼寫怎麼保存到資料庫。因為本人才疏學淺,費啦好長時間才寫好把修改的內容只用一條sql語句保存到資料庫,今天在這里和大家分享
這是運行圖片

這是前台頁面
03.aspx頁面
復制代碼
代碼如下:
<table
id="MyTable"
cellspacing="1"
cellpadding="3">
<asp:Repeater
ID="reorderInFo"
runat="server">
<ItemTemplate>
<tr
style="text-align:
left;">
<td
width="70"
height="40"
id="OrderName">
訂單名稱:
</td>
<td
colspan="5"
class="caname"
id="OrderName1">
<%#Eval("OrderName")%>
</td>
</tr>
<tr
style="text-align:
left;">
<td
width="70"
height="40"
id="ID_Proct">
產品類型:
</td>
<td
class="caname"
id="ID_Proct1">
<%#Eval("ID_Proct")%>
</td>
<td
width="40"
id="OrderState_Send">
狀態:
</td>
<td
class="caname"
id="OrderState_Send1"
><%#Eval("OrderState_Send")%>
</td>
<td
width="40"
id="OrderQty">
印量:
</td>
<td
class="caname"
id="OrderQty1"
><%#Eval("OrderQty")%>
</td>
</tr>
<tr>
<td
width="70"
height="60"
id="SendAddress">
收貨信息:
</td>
<td
colspan="5"
class="caname"
id="SendAddress1"
><%#Eval("SendAddress")%>
</td>
</tr>
<tr
style="text-align:
left;">
<td
width="70"
height="50"
id="OrderMoney_Total">
總金額:
</td>
<td
colspan="5"
class="caname"
id="OrderMoney_Total1"
><%#Eval("OrderMoney_Total")%>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
這是js
03.js
復制代碼
代碼如下:
$(function
()
{
//獲取class為caname的元素
$(".caname").click(function
()
{
var
td
=
$(this);
var
txt
=
$.trim(td.text());
var
input
=
$("<input
type='text'value='"
+
txt
+
"'/>");
td.html(input);
input.click(function
()
{
return
false;
});
//獲取焦點
input.trigger("focus");
//文本框失去焦點後提交內容,重新變為文本
input.blur(function
()
{
var
newtxt
=
$(this).val();
//判斷文本有沒有修改
if
(newtxt
!=
txt)
{
td.html(newtxt);
//不需要使用資料庫的這段可以不需要
//var
Order_Id
=
$("#ID_Order").text();
var
updateCol
=
$.trim(td.prev().attr("id"));//我重點要說的是著一句:td.prev();表示本td的上一個td。這句代碼的意思是你所點擊的td的上一個td的id(如果不明白可以看前面的03.aspx頁面)。
//ajax非同步更改資料庫,加參數date是解決緩存問題
url
=
"../test/03.ashx?caname="
+
newtxt
+
"&updateCol="
+
updateCol
+
"&date="
+
new
Date();
//使用get()方法打開一個一般處理程序,data接受返回的參數(在一般處理程序中返回參數的方法
context.Response.Write("要返回的參數");)
//資料庫的修改就在一般處理程序中完成
$.get(url,
function
(data)
{
//
if
(data
==
"1")
{
//
alert("該類別已存在!");
//
td.html(txt);
//
return;
//
}
//
alert(data);
alert("修改成功");
td.html(newtxt);
});
復制代碼
代碼如下:
<p><span
style="font-size:14px;">這是一般處理程序頁面<span
style="font-family:Times
New
Roman;">
03.ashx</span></span></p><p>
<%@
WebHandler
Language="C#"
Class="_03"
%></p>
復制代碼
代碼如下:
<p>using
System;
using
System.Web;
using
System.Data.SqlClient;</p><p>public
class
_03
:
IHttpHandler
{
public
void
ProcessRequest
(HttpContext
context)
{
context.Response.ContentType
=
"text/plain";
int
OrderId
=
5;</p><p>
string
newOrderName
=
context.Request.QueryString["caname"];//獲取用戶修改後的文字
string
updateCol
=
context.Request.QueryString["updateCol"];//獲取用戶修改的本td的上一個td的id的值(這個id與資料庫中的列名相同)
string
sql
=
"update
eoPrintOrder
set
"
+
updateCol
+
"
<a
target="_blank"
href="mailto:=@name">=@name</a>
where
<a
target="_blank"
href="mailto:Id_order=@id';//">Id_order=@id";//</a>通過這一條sql語句,就可以對資料庫進行修改
SqlParameter[]
pams
=
{
new
SqlParameter("@name",newOrderName),
new
SqlParameter("@id",OrderId)
};
string
data
=
DscySFL.DbHelp.ExecuteCommand(sql,pams
).ToString();
context.Response.Write(data);
}
public
bool
IsReusable
{
get
{
return
false;
}
}</p><p>}</p>

『玖』 html+jquery+ajax可以將表單數據存儲到伺服器的xml文件里嗎

不可以
你要往伺服器寫東西,就必須有伺服器端的程序在那裡寫啊。
網頁都是在用戶端運行的。

『拾』 jquery 瀏覽器有哪些存儲數據的方式

cookie存儲數據,客戶存儲數據。

熱點內容
linux命令全稱 發布:2024-05-17 12:07:54 瀏覽:110
ftpnas區別 發布:2024-05-17 12:06:18 瀏覽:949
512g存儲晶元價格 發布:2024-05-17 12:04:48 瀏覽:963
腳本運行周期 發布:2024-05-17 11:39:09 瀏覽:808
阿里雲伺服器怎麼配置發信功能 發布:2024-05-17 11:37:24 瀏覽:313
編程中的變數 發布:2024-05-17 11:33:06 瀏覽:777
加密視頻怎麼解密 發布:2024-05-17 11:02:52 瀏覽:571
柳工挖機密碼多少合適 發布:2024-05-17 11:00:40 瀏覽:188
android工程嘆號 發布:2024-05-17 10:56:21 瀏覽:481
在蘋果手機應用怎麼比安卓貴 發布:2024-05-17 10:56:20 瀏覽:548