0

私はこの行をよく見ましたが、答えが見つかりません:

$.jgrid.useJSON = true;

目的は何ですか?

4

2 に答える 2

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どの定義$.jgridを含めるかを含める必要があります。次に、を設定でき$.jgrid.useJSONます。$.jgrid.no_legacy_apiその後のjqGridの実装ではjquery.jqGrid.min.js、設定が使用されます。

このオプションは、でまたはを使用してJSON文字列を解析するため$.jgrid.useJSONに使用されます。$.jgrid.parseJSON.parseeval

正確には、この方法$.jgrid.parseはそれほど頻繁には使用されません。ほとんどの場合、次の2つのケースが関係します。

  1. datastrの値がdatastr「文字列」タイプであり、datatype: "jsonstring"
  2. の解析postData.filters(ローカルデータ型および高度な検索に使用されるフィルターパラメーター)
  3. 次の場合にサブグリッドのサーバーからのJSON応答を解析するsubgridtype: "json"
  4. jqGridImportメソッド実装の内部

したがって、の使用をお勧めしますが、JSON解析の最も重要なケースは、通常、jqGridコードではなく$.jgrid.useJSON = true;内部で(通常は)jQueryによって行われるため、プログラムのパフォーマンスには影響しません。jQuery.ajax

于 2012-10-04T12:44:18.853 に答える
0

ソースを調べると、すべてがきれいになります:

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

したがって、基本的には次のように述べています。

JSON 文字列を解析するJSONには、可能であれば代わりに JavaScript APIを使用します。eval

于 2012-10-04T12:26:27.797 に答える