Tag: 缓存

如果该函数被多次调用,那么在函数中缓存选择器会更高效吗?

好的,我想我知道答案,希望确认。 所以我有一个只使用过一次的选择器,但是它被用在一个多次调用的函数中。 从性能的角度来看,因为每次调用函数时都会重新搜索该选择器,所以缓存选择器可能(尽管稍微好一点)? 换句话说,下面…… function testFunction() { alert($(“#input”).val()) } $(“#a”).click(function() { testFunction() }) $(“#b”).click(function() { testFunction() }) $(“#c”).click(function() { testFunction() }) ……不如下面的表现 input = $(“#input”) function testFunction() { alert(input.val()) } $(“#a”).click(function() { testFunction() }) $(“#b”).click(function() { testFunction() }) $(“#c”).click(function() { testFunction() })

如何在页面刷新后保留div内容

我正在使用Jquery创建一个动态div,我正在尝试缓存它,以便在页面刷新后将其恢复,请帮助如何实现此目的, 粘贴下面的代码 $.jCache.maxSize = 20; function createDiv() { var divTemp = “This is a Label”; alert(divTemp); $(divTemp).appendTo(“#divDisplay”); $.jCache.setItem(“myKey”, divTemp); } $(document).ready(function() { if ($.jCache.hasItem(“myKey”)) { var cacheDiv = $.jCache.getItem(“myKey”); var cacheDiv = cacheDiv + “anchor Tag”; $(cacheDiv).appendTo(“#divDisplay”); } }); 我试图在页面中使用按钮单击绘制div,在页面中绘制单击div后,当使用F5单击刷新它时,div消失,有没有办法使用缓存机制保留div内容? 这对我的整个function来说都是一个绝迹! 谢谢,Shajo

如何检查jQuery是否已经在缓存中?

无论如何检查客户端是否从CDN加载jQuery? 我的意思是拥有这样的代码: if (jQuery.isLoadedFromCDN) //DoNothing else //load from internal resource 请注意,我不想检查jQuery是否已加载,但特别是如果它是从CDN加载的。 上下文是我有一个使用jQuery的内部局域网w​​eb应用程序,从局域网加载jQuery肯定更快,但如果它之前已经从CDN下载(可能就是这种情况)那么我只想使用其他我想要的从我们的内部资源而不是cdn获取它。 带宽节省绝对不是很大,但我更想知道这是否在技术上是可行的。

使用jQuery.ajax()无法使用AJAX从iOS设备中保存到主屏幕的AJAX访问清单缓存文件

我正在制作一个webapp。 它加载的一些文件包含纯静态.JSON数据。 我正在使用带有dataType的jQuery.ajax()(jQuery 1.5.2):’json’和cache:true。 一切正常,所有文件都已加载。 我还配置了缓存清单来缓存这些JSON文件(除了css,js和images)。 一切都运行良好 – 当用户访问我的网站时,我需要的所有文件都正确缓存(我有applicationCache事件处理程序,确认一切都很好)。 我已经测试了谷歌浏览器中的所有内容,我可以看到所有文件(包括JSON文件)都已缓存。 当我断开网络连接时,一切正常(jQuery ajax调用自动获取缓存的JSON文件)。 现在我试图在移动Safari上测试这个(在实际的iPad和iPhone模拟器上)。 在Safari中,一切都按预期工作 – 页面被缓存,并且在网络断开的后续访问中,使用缓存的文件。 但是,当我使用Safari中的“添加到主屏幕”将应用程序添加到主屏幕时,应用程序启动并且所有.js,.css和图像都正常工作,但我的Ajax调用没有! 他们不访问缓存的.json文件。 对于每个Ajax调用, XMLHttpRequest.status为0 , .statusText为error ,但getAllResponseHeaders()显示与Safari中的function应用程序相同(正确)的标头。 我不懂。 这是jQuery的.ajax()中的限制/错误还是什么? 任何帮助表示赞赏。

如何在jquery ajax中启用缓存

jQuery(“#divProviders img”).click(function (e) { //alert(jQuery(this)[0].nameProp); document.getElementById(“TxtProvPic”).value = jQuery(this)[0].getAttribute(“src”); //jQuery(this)[0].nameProp; $.ajax({ type: “GET”, url: “Services/TeleCom/EVoucher.aspx”, data: “ExtFlag=GetProducts&AjaxFalg=SpecialRequest&prov=” + jQuery(this)[0].id.replace(“img_”, “”) + “&pcat=” + document.getElementById(“Txhhc”).value, beforeSend: function () { document.getElementById(“DivProducts”).innerHTML = “”; document.getElementById(“DivLoad”).innerHTML = “”; }, cache: true, success: function (data) { var StrResponse; StrResponse = data.split(‘@@@’); EvoucherFillProductsRes(StrResponse[0]); }, error: function (xhr) { alert(“responseText: ” + xhr.responseText); […]

jqgrid没有更新重载数据

我有一个jqgrid从xml流加载数据(由django 1.1.1处理): jQuery(document).ready(function(){ jQuery(“#list”).jqGrid({ url:’/downtime/list_xml/’, datatype: ‘xml’, mtype: ‘GET’, postData:{site:1,date_start:document.getElementById(‘datepicker_start’).value,date_end:document.getElementById(‘datepicker_end’).value}, colNames:[…], colModel :[…], pager: ‘#pager’, rowNum: 25, rowList:[10,25,50], viewrecords: true, height: 500, caption: ‘Click on column headers to reorder’ }); $(“#grid_reload”).click(function(){ $(“#list”).trigger(“reloadGrid”); }); $(“#tabs”).tabs(); $(“#datepicker_start”).datepicker({dateFormat: ‘yy-mm-dd’}); $(“#datepicker_end”).datepicker({dateFormat: ‘yy-mm-dd’}); … 和html元素: Start Date: End Date: 当我单击grid_reload按钮时,网格会重新加载,但是当它完成时它会显示与之前完全相同的数据,即使测试了xml以返回不同时间戳的不同数据。 我已经使用alert(document.getElementById(’datepicker_start’)。value)检查了触发重载事件时日期输入中的值是否正确传递。 任何想法为什么数据不更新? 也许是缓存或浏览器问题?

基本的Ajax缓存问题

我有一个页面,我有时需要异步检查服务器,看看页面状态是否是最新的(基本上是Live或Offline)。 您将看到我有一个函数,其中var live在页面最初加载时设置。 然后,我向服务器执行ajax请求,以检索live的状态是true还是false。 我将初始实时变量与新返回的数据json对象进行比较。 如果它们是相同的我什么也不做,但如果有不同我应用一些CSS类。 我使用setTimeout以递归方式运行它(是否有更好的方法来递归执行此操作?)。 我的问题:data.live不会从它运行的初始时间改变,即使它在db中发生了变化。 我知道我的mysql正在工作,因为它在初始加载时重新调整了正确的值。 这似乎是一个缓存问题。 任何帮助是极大的赞赏。 function checkLive() { var live = ; $.ajax({ type: ‘get’, url: ‘/live/live.php’, dataType: ‘json’, success: function(data) { console.log(‘checking for updates… current:’ + data.live); if (data.live == live) { return; } else { var elems = $(‘div.player_meta, object, h3.offline_message’); if (data.live == ‘1’) { elems.removeClass(‘offline’).addClass(‘live’); […]

如何防止jQuery Ajax缓存?

有人可以帮我这个吗? 我有一个使用.manifest进行离线存储缓存的网页。 在该页面中,我使用jQuery ajax调用从服务器获取数据。 如果我先加载页面,就可以了。 我可以在线和离线之间切换。 但问题是当我重新上线并刷新页面时。 jQuery ajax无法再与服务器通信了。 有没有办法让ajax与服务器通信或清除脱机缓存? 我的ajax电话是这样的: $.ajax({ type: “GET”, url: requestUrl, success: localSuccess, error: error, dataType: “text”, cache:false });

当使用jqgrid时,无论如何都有recreateForm:true但是还缓存dataUrl?

我有以下列使用jqGrid(简化) { name: “PMOPerson”, index: “PMOPerson”, width: 250, editable: true, edittype: “select”, editoptions: { dataUrl: “/Person/GetSelectData” }, editrules: { required: false} }, { name: “HeadDisplayName”, index: “HeadDisplayName”, width: 150, editable: false }, 当我通过调出编辑对话框来编辑一行时,需要10秒才能填充PMOPerson下拉列表。 甚至在我之前已经加载过一次之后就是这种情况,我认为这是因为我在下面重新创建了一个forms:true addButton({ caption: “”, title: “Edit Selected Team”, buttonicon: ‘ui-icon-pencil’, onClickButton: function () { var id = $(“#grid”).getGridParam(“selrow”); if (id) { jQuery(“#grid”).jqGrid(‘editGridRow’, […]

浏览器不能只使用之前的ajax调用缓存吗?

我试图依靠浏览器缓存来保存jQuery中从AJAX调用返回的JSON数据。 正常的浏览器活动始终依赖于浏览器缓存。 示例:页面重新加载时不会重新获取jpg和gif图像。 但是当我尝试使用jQuery getJSON ajax调用时,我似乎无法避免从服务器获取数据。 我返回的标题看起来像这样(用firebug确认): Transfer-Encoding: chunked Date: Wed, 05 Aug 2009 02:55:39 GMT Content-Type: text/plain; charset=ISO-8859-1 Expires: Wed, 05 Aug 2009 03:55:39 GMT Cache-Control: max-age=3600 然而,立即刷新页面会导致相同的请求命中服务器。 我已经看过几篇关于避免缓存行为的post,这不是我需要的。 我已经看过几篇关于利用缓存的post,但这些似乎都依赖于在DOM中保存数据。 我想要的东西就像缓存图像在页面重新加载时一样。 浏览器是否只能从它自己的缓存中获取它? –x – x – x – x UPDATE –x – x – x– 令我失望的是,几位受人尊敬的人都认为这不仅是可能的。 有些人甚至认为它不应该(这仍然让我感到困惑)。 Stubburn故障,我尝试了以下几点: 我在要缓存的所有传出页面上设置了Etag标头(我选择一些选择URL参数来表示我正在请求的数据,并将其用于Etag值) 在下一个请求开始时,我只需检查请求中是否有“If-None-Match”标头。 如果是这样,那么浏览器不会像我想要的那样缓存请求,所以我发送了304 Not Modified响应。 测试显示Firefox不会缓存我的请求(但我仍然可以避免’获取我的cgi的昂贵数据’部分),而IE6实际上会缓存它(甚至不会尝试从服务器取回)。 […]