当前位置: 首页 > 面试题库 >

从Dynatable加载远程JSON

葛威
2023-03-14
问题内容

更新: 为避免问题完全归因于同一原产地政策的可能性,我尝试在本地提供服务,因为所有资产都来自html" target="_blank">http://localhost:4000使用
Serve
。它没有解决问题。因此,由于相同的原始策略,可能无法编辑小提琴,但是您可以在此处看到代码。

我正在尝试使用Dynatable加载外部JSON,跳过读取/标准化步骤(该步骤从现有表生成JSON)。应该支持它,但是它对我不起作用。

这是我对JSFiddle的尝试。从小提琴中可以看出,从文档中加载JSON(对我来说似乎并不是很有用),可以正常工作。但是从URL提取它根本不起作用。

这是我的JavaScript:

// getting JSON from the document works, but of what use is that?
$(document).ready( function() {
    $('#local').dynatable({
        dataset: {
            records: JSON.parse($('#music').text())
        }
    });        
    // getting JSON from a remote source fails:
    $('#remote').dynatable({
        dataset: {
            ajax: true,
            ajaxOnLoad: true,
            ajaxUrl: '//www.dynatable.com/dynatable-ajax.json',
            records: []
        }
    });
});

…,它引用两个表,一个表的ID为“ local”,另一个表的ID为“ remote”,以及一个包含本地表数据的脚本:

<h3>Remote JSON: Failing</h3>
<table class="table table-striped" id="remote">
  <thead>
    <th>Some Attribute</th>
    <th>Some Other Attribute</th>
  </thead>
  <tbody>
  </tbody>
</table>
<hr>
<h3>Local JSON: Succeeding</h3>
<table class="table table-striped" id="local">
  <thead>
    <th style="color: black;">Band</th>
    <th>Album</th>
  </thead>
  <tbody>
  </tbody>
</table>
<script id="music">
[
    {
        "band": "The Police",
        "album": "Ghost In The Machine"
    },{
        "band": "Supertramp",
        "album": "Breakfast In America"
    },{
        "band": "Peter Tosh",
        "album": "Mama Africa"
    },{
        "band": "The Police",
        "album": "Regatta d'Blanc"
    },{
        "band": "The Police",
        "album": "Zenyatta Mondatta"
    },{
        "band": "Supertramp",
        "album": "Crime of the Century"
    },{
        "band": "Talking Heads",
        "album": "Remain in Light"
    },{
        "band": "Talking Heads",
        "album": "Speaking in Tongues"
    }
]
</script>

问题答案:

远程服务器无法正常工作的原因是,当通过AJAX获取数据时,响应JSON必须包含一些元数据以及实际记录。

如果您查看可动态化文档中的AJAX示例,则可以单击“查看AJAX数据”以查看格式:

{
  "records": [
    {
      "someAttribute": "I am record one",
      "someOtherAttribute": "Fetched by AJAX"
    },
    {
      "someAttribute": "I am record two",
      "someOtherAttribute": "Cuz it's awesome"
    },
    {
      "someAttribute": "I am record three",
      "someOtherAttribute": "Yup, still AJAX"
    }
  ],
  "queryRecordCount": 3,
  "totalRecordCount": 3
}

您可以看到实际结果数组嵌套"records"在响应JSON中,并且它还返回集合中总共有多少条记录以及当前集合中有多少条记录。

动态数据需要此元数据的原因是为了在表底部进行分页和记录计数文本。由于您的服务器正在执行实际的查询,排序和分页(例如,通过数据库查询或其他服务器端处理),因此可动态化只能看到最终结果。因此,可动态化永远不会知道:

  1. 集合中有多少总记录与

  2. 筛选/查询集中有多少条记录(跨所有页面)与

  3. 筛选/查询的分页集中有多少条记录(在当前页面上)。

从返回的结果中可以得出的唯一可推论结果是从上面的(3),即当前页面上已过滤/查询的集中有多少条记录。因此,它需要从服务器返回的JSON来告诉它(1),即totalRecordCount和;(2),即queryRecordCount

当然,如果您不希望所有这些,可以关闭分页和记录计数文本,并告诉dynatable结果将位于服务器返回的JSON的根目录:

$('#remote').dynatable({
  features: {
    paginate: false,
    recordCount: false
  },
  dataset: {
    ajax: true,
    ajaxOnLoad: true,
    ajaxUrl: '//www.dynatable.com/dynatable-ajax.json',
    records: []
  },
  params: {
    records: '_root'
  }
});


 类似资料:
  • jquery-dynatable 一款提供简单、可扩展的 API ,能更容易的查看大数据集合、与大数据集合进行交互。Dynatable 还提供了一个包含有最常见功能(排序,搜索和过滤)的框架。

  • 我知道jar文件(或类文件)可以用URLClassLoader远程加载。但是这种方法能防止盗版吗? 假设我在服务器上有一个jar文件,在客户端,我可以用URLClassLoader动态加载jar。但是安全呢?jar文件是否下载到客户端的临时目录中?有人可以访问jar文件的内容并对其进行反编译吗? 提前感谢, 奥努尔

  • 问题内容: 我正在尝试设置一个脚本,该脚本将: 连接到Windows共享 使用LOAD DATA LOCAL INFILE,将两个文件上载到相应的数据库表中 数量份额 情况: 我目前可以vpnc进入这台远程计算机 问题: 我不能 我尝试首先手动执行此操作 远程服务器打开到端口445 问题: 我什至需要先使用vpnc吗? vpnc之后是否需要为远程ip / mask / gw添加路由? 谢谢! 问题

  • 带Springdoc的Spring Boot 2.6.3。 在,当我将路径设置为/v3/api docs或将其删除时,这意味着使用默认路径“/v3/api docs”。Swagger UI页面与API一起正确显示http://localhost:8080/swagger-用户界面/索引。html 但我想覆盖下面的路径 然后SwaggerUI显示"加载远程配置失败"错误:

  • 问题内容: 我正在使用Select2 JS版本4.0.0-rc.1,并且无法通过远程Ajax方法加载建议。 以下是标记和代码 JavaScript jQuery 服务器返回的Json结果 我完全不确定是否需要编写特定的函数来显示建议,有关Ajax部分的评论指出,我们不应更改结果Json数据。 现在有人请告诉我,让代码正常工作以显示建议还需要做些什么。 我想随着新版本的select2发生了很多变化。

  • 问题 你想自定义Python的import语句,使得它能从远程机器上面透明的加载模块。 解决方案 首先要提出来的是安全问题。本节讨论的思想如果没有一些额外的安全和认知机制的话会很糟糕。 也就是说,我们的主要目的是深入分析Python的import语句机制。 如果你理解了本节内部原理,你就能够为其他任何目的而自定义import。 有了这些,让我们继续向前走。 本节核心是设计导入语句的扩展功能。有很多