数据表是否缓存 ajaxSource 的结果?

2023-12-21

我已经在 portlet war 文件中嵌入了 jquery 数据表,并且遇到了一些有趣的行为,我需要一些解释。

这就是我的 javascript 的样子......http://pastebin.com/qXpwt9A7 http://pastebin.com/qXpwt9A7

这是场景。

  1. 我打开网页并在“TextA”上进行关键字搜索 结果:向服务器发送 ajax 请求以加载 jquery 数据表。

  2. 在不关闭浏览器的情况下,我对“TextB”进行关键字搜索。 结果:向服务器发送 ajax 请求以加载 jquery 数据表。

  3. 在不关闭浏览器的情况下,我再次对“TextA”进行关键字搜索。 结果:请求未发送到服务器。但我的数据表足够智能,可以记住步骤 1 中检索到的结果,并将结果显示在页面上。

这实际上对我来说效果很好,但我不知道为什么会发生。

如果我不得不猜测,我想数据表中一定有一些智能,它可以缓存 ajax 源的结果,其中参数相同,这样就不必再次触发对该 ajax 源的请求。

我对吗? 我使用的是数据表1.9.4。


默认情况下,DataTables v.1.9.4 会阻止请求缓存fnServerData功能、注意事项"cache": false下面摘录自 DataTables 源代码。

  "fnServerData": function ( sUrl, aoData, fnCallback, oSettings ) {
     oSettings.jqXHR = $.ajax( {
        "url":  sUrl,
        "data": aoData,
        "success": function (json) {
           if ( json.sError ) {
              oSettings.oApi._fnLog( oSettings, 0, json.sError );
           }

           $(oSettings.oInstance).trigger('xhr', [oSettings, json]);
           fnCallback( json );
        },
        "dataType": "json",
        "cache": false,
        "type": oSettings.sServerMethod,
        "error": function (xhr, error, thrown) {
           if ( error == "parsererror" ) {
              oSettings.oApi._fnLog( oSettings, 0, "DataTables warning: JSON data from "+
                 "server could not be parsed. This is caused by a JSON formatting error." );
           }
        }
     } );
  }

但是在你的代码中你重写了fnServerData并使用$.getJSON()这是一个简写函数$.ajax() http://api.jquery.com/jQuery.ajax/没有指定cache选项。默认值cache选项是true,这就是您的请求被缓存的原因。

以下是 jQuery 手册的摘录:

cache(默认:true, false for dataType 'script' and 'jsonp')

类型:布尔值

如果设置为false,它将强制请求的页面不被 由浏览器缓存。注:设置cache to false只会起作用 正确处理 HEAD 和 GET 请求。它的工作原理是附加 “_={timestamp}” 到 GET 参数。不需要该参数 其他类型的请求,除了在 IE8 中对 URL 进行 POST 时 已通过 GET 请求。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据表是否缓存 ajaxSource 的结果? 的相关文章

随机推荐

  • 谷歌地图在真实的 Android 设备上是空白的 - 但可以在模拟器上使用

    Hola 我正在尝试让地图工作 它似乎在 Nexus 6 模拟器上运行良好 但是当我在 Moto G 或 Samsung Galaxy 上运行它时 地图完全是银行的 它只在底角包含 google 徽标 我已经生成了一个谷歌地图密钥并将其放入
  • 如何使共享操作图标变为白色而不是灰色

    我的应用程序有ShareAction图标如下所示 我如何让它变成白色而不是灰色 看起来现在已经禁用了 我的 XML 是 menu menu
  • 更改 JTable 中行的背景颜色

    我有一个包含 3 列的 JTable 我已经设置了TableCellRenderer对于所有这样的 3 列 也许不是很有效 for int i 0 i lt 3 i myJTable getColumnModel getColumn i s
  • 查找连接我的设备的串行端口

    我开始使用密码键盘工作 我需要我的程序找到密码键盘连接的端口 而无需用户交互 我尝试过 Dim searcher As New ManagementObjectSearcher root cimv2 SELECT FROM Win32 Se
  • MySQL 中的条件更新

    我在尝试着UPDATE表中的值 但我需要添加一些条件 我找到了这个功能CASE 但如果这是最好的方法 我不是 这是一个例子 我的表是 关系 userid1 userid2 name1 name2 我得到了例如 SELECT FROM rel
  • javax.imageio.ImageIO 在灰度图像上读取不正确的 RGB 值

    我有一个图像 将其命名为grayscale jpg 现在 我在 The Gimp 中打开该图像并将颜色模式更改为 RGB 并将其另存为 color jpg 如果我在任何图像查看器中查看grayscale jpg和color jpg 它们看起
  • css 我如何从检查器中找到css文件

    我必须搜索确切的 css 文件 其中对规则进行了更改 但我不记得该规则在哪里 如何从检查器中找到css文件 选择器附近有一个 CSS 文件名 primary unified 例如
  • 在c99中有没有办法让复合文字具有可变长度?

    我知道可以通过正常声明数组来获得在运行时确定长度的数组 char buf len 我知道我可以将数组声明为复合文字并将其分配给中途的指针 char buf buf char 5 0 但是 将两者结合起来不起作用 标准不允许 我的问题是 有什
  • Mac 上的 Cocoa 中区分单击和双击

    我有一个习惯NSView 这是其中之一 他们都住在一个NSCollectionView 我认为这不相关 但谁知道呢 当我单击视图时 我希望它更改其选择状态 并相应地重新绘制自身 当我双击视图时 我希望它为刚刚双击的对象弹出一个更大的预览窗口
  • Windows 中的 Visual Studio 文件关联

    在 Windows 资源管理器中 当我双击任何 Visual Studio 文件时 cs csproj等 它打开的是旧版本的 VS 而不是最新版本 VS 2017 而且VS与太多的文件类型有关联 我怎样才能改变default视觉工作室 对于
  • Python:使用 tarfile 提取但忽略目录

    如果我有一个带有文件的 tar 文件 path to file txt 有没有办法 在Python中 将文件提取到指定目录而不重新创建目录 path to 我也遇到了这个问题 并根据 ekhumoro 的回答列出了完整的示例 import
  • Angular HttpClient 获取请求 URL 删除主题标签/数字符号

    我正在使用 httpclient get 当我有 在请求 URL 中 它会删除后面的所有内容 Example 预期要求 https jsonplaceholder typicode com users 1 TEST 实际要求 https j
  • 具有自定义子项的 MUI 选择组件

    我正在尝试创建一个Select具有通过列表映射的一系列自定义项的组件 每个项目都有一个特定的类型 并且根据该类型 菜单项将具有特定的 MUI 图标 我创建了一个特定的组件来管理整个Select组件和另一个特定组件来显示每个项目 其值及其图标
  • 将内存中的 H2 数据库保存到磁盘

    如何以二进制模式将完整的嵌入式 h2 内存数据库保存 加载到某个文件或目录以加快加载速度 我想用它来缓存数据 这样我就不必每次都运行创建表 插入子句的所有行 您可以使用常规 持久 数据库 而不是使用内存数据库 即使这样 您仍然可以使用内存表
  • Python 3.6 urllib TypeError:无法将字节连接到 str

    我正在尝试使用 Python 3 6 中的 urllib 从 API 中提取一些 JSON 数据 它需要传递标头信息以进行授权 这是我的代码 import urllib request json headers authorization
  • 提升精神气整数,文字默认值

    我想解析具有特定文字默认值的数字 例如 如果程序接收到 nan 或 n a 则整数默认值为 1 Example program include
  • ElasticSearch 在哪里存储持久设置?

    当我通过以下方式获取 ElasticSearch 服务器设置时 curl XGET localhost 9200 cluster settings 我看到持久性和瞬态设置 persistent cluster routing allocat
  • 通过 powershell 或 Azure Devops 管道步骤在 Azure 数据工厂上以编程方式“发布”

    这个问题不会有任何代码 因为到目前为止我还没有找到任何可能的方法 但甚至没有直接的方法不 这是不可能的 Azure 数据工厂使用adf 发布分支作为 master 之上的官方分支 当用户在 GUI 上单击时 ADF 将所有管道 触发器 链接
  • 检查所有 AsyncTask 是否已完成

    我有 3 个AsyncTasks and 1 ProgressBar 我希望当任何任务执行时 进度条可见 当所有任务完成时 进度条不可见 在Java中 有ExecutorService isTerminated检查所有可运行程序是否已完成
  • 数据表是否缓存 ajaxSource 的结果?

    我已经在 portlet war 文件中嵌入了 jquery 数据表 并且遇到了一些有趣的行为 我需要一些解释 这就是我的 javascript 的样子 http pastebin com qXpwt9A7 http pastebin co