3

mysql データベースでサーバー側の選択を行い、結果を ajax を使用せずに HTML5 セッション ストレージに直接挿入することが可能かどうか疑問に思っています。シナリオは次のとおりです。

サーバー側のスクリプトで OK と仮定すると、次のようになります。

    header( "Content-type: application/json" );

    $jsondata = array();

    while ($Row = mysql_fetch_array($params))
    {
    $jsondata[]= array('field1'=>$Row["field1"], 
                           'field2'=>$Row["field2"],
                           'field3'=>$Row["field3"],
                           'field4'=>$Row["field4"]);
    };

    echo json_encode(array("eeData" => $jsondata));

通常、これが ajax の場合は、応答を待ち、結果を解析してそのように処理できます。ただし、そのメソッドはクライアント側で開始され、事実上、サーバーへの 2 番目の要求です。

しかし、これがページの絶対的な最初のリクエスト、つまり最初のリクエストで達成できるかどうか疑問に思っていました。データを取得し、ページが最初に提供されると同時にセッションストレージに直接注入します。

原則が明確でない場合はコメントしてください。

4

2 に答える 2

1

このデータを保存するために、ウェブサーバーはどのようにブラウザにアクセスする必要があるのでしょうか? Websockets API が普及するまでは、サーバーがクライアントにデータを送信する唯一の方法は、クライアントがリクエストを開始するときです。ブラウザに「手を差し伸べて」データを詰め込むことはできません。

最初のページ要求時にこれが必要な場合は、送信されるページにいつでもデータを埋め込むことができます

<script>
    var data_to_store = <?php echo json_encode($your_structure) ?>;
</script>

「太った」ページになりますが、同じリクエストでデータを送信します。他の方法では、サーバーへの 2 番目の接続が必要になります。

于 2011-09-09T21:41:48.753 に答える
0

質問を誤解しているかもしれませんが、ページが最初に読み込まれたときに LocalStorage に何かを挿入したい場合は、それを Javascript 変数に読み込んでから挿入してください。例えば:

...

var dataToInsert = JSON.parse("<?php echo(json_encode(arra("eeData" => $jsondata))?>");

次にdataToInsert、他の JS 変数と同じように操作します。

于 2011-09-09T21:43:52.570 に答える