$ .jqgrid.use JSON = true的目的是什么?

时间:2012-10-04 12:23:09

标签: jqgrid

我经常看到这条线,但找不到答案:

$.jgrid.useJSON = true;

目的是什么?

2 个答案:

答案 0 :(得分:1)

通常我按以下方式包含jqGrid

<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/themes/redmond/jquery-ui.css" />
<link rel="stylesheet" type="text/css" href="http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-4.4.1/css/ui.jqgrid.css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/jquery-ui.min.js"></script>
<script type="text/javascript" src="http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-4.4.1/js/i18n/grid.locale-en.js"></script>
<script type="text/javascript">
    $.jgrid.no_legacy_api = true;
    $.jgrid.useJSON = true;
</script>
<script type="text/javascript" src="http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-4.4.1/js/jquery.jqGrid.min.js"></script>
<script type="text/javascript" src="http://www.ok-soft-gmbh.com/jqGrid/json2.js"></script>

首先应该包含定义grid.locale-en.js的{​​{1}},然后您可以设置$.jgrid$.jgrid.useJSON$.jgrid.no_legacy_api中后面的jqGrid实现将会使用设置。

选项jquery.jqGrid.min.js将在$.jgrid.useJSON中用于使用$.jgrid.parseJSON.parse解析JSON字符串。

确切地说,方法eval将不会频繁使用。大多数情况下有两个案例是相关的:

    如果$.jgrid.parse的值具有“字符串”类型且datastr ,则
  1. 解析输入datastr
  2. 解析datatype: "jsonstring"(与本地数据类型和高级搜索一起使用的过滤器参数)
  3. postData.filters
  4. 的情况下解析来自服务器的JSON响应以查找子网格
  5. subgridtype: "json"方法实现
  6. 因此建议使用jqGridImport,但它可能不会影响程序的性能,因为最重要的JSON解析案例通常由内部的jQuery进行(通常由$.jgrid.useJSON = true; )而不是jqGrid代码。

答案 1 :(得分:0)

查看消息来源可以清理所有内容:

parse : function(jsonString) {
  ...
  return ($.jgrid.useJSON===true && typeof (JSON) === 'object' && typeof (JSON.parse) === 'function') 
    ? JSON.parse(js) 
    : eval('(' + js + ')');
}

所以基本上它说:

要解析JSON字符串,请尽可能使用JavaScript JSON API代替eval