-1

私は現在、セッションごとに構成パラメーターの一部を取得する ajax-application を作成しています。

これらのパラメーターを保持しているセッション ['apps']['appXY'] は、ajax を呼び出して js リンクを提供する php スクリプトに組み込まれています。セッション['apps']['appXY']がリソースを消費したくないので、ユーザーがajax-appを使用しない場合、セッション['apps']配列を毎回削除し、ユーザーは定期的に任意のサイトを呼び出します/同期方法。

サイト構築の順序は次のとおりです。

  • session['apps'] が削除されました。
  • アプリクラスが含まれています
  • 各アプリ (fe appXY) 内で、ajax に必要な場合は、セッション ['apps']['appXY'] が構築されます (Step3)

  • サイトが構築され、ロードが完了し、ユーザーがいくつかの ajax 機能を呼び出しています。これは、セッションに依存する可能性があります['apps']['appXY']

これに関する問題は、サイト構築プロセスの開始時にセッション['apps'] が削除された場合、セッション配列 $session['apps']['appXY'] が ajax スクリプト内で使用できないことです。 appXY の通常の php スクリプトであるステップ 3 で再構築され、既存の使用可能な状態になっています。

セッションを削除しないと、ajaxでも利用できますが、セッションの削除は再構築の前であるため、セッションがajaxアプリケーションで利用できないのはなぜですか? セッションを削除して再構築した後、通常のphpスクリプトでは使用できますが、ajaxでは使用できないという事実を引き起こす原因は何ですか?

ありがとう、ジェイデン

4

1 に答える 1

0

Ninsuo が提案したように、いくつかのコードを含む、より詳細なモデルによってシナリオをより明確にしようとしています。

メインクラスでは、モジュール (アプリ) を含める前に、すべての ajax セッションが削除されます。

function get-apps()
{
    unset($_SESSION['ajaxconf']);

    require_once(appXY.php);
    require_once(appABC.php);
}

次に、クラス 'appXY.php' で、セッション '$_SESSION['ajaxconf']['appXY']' が (再) 埋められます。

class appXY extends base
{
    function main ( $localconf, $lang ) 
    {
        foreach ($array as $key => $value)
        $_SESSION['ajaxconf']['appXY'][$key] = $value;

        return '<a href="index.php?id=123&param1=234" onclick="ajax-app(234) return false;">click</a>
    }
}

'$_SESSION['ajaxconf']['appXY']' からの値の取得は、セッションが無効でない限り、javascript-function 'ajax-app()' によって呼び出される ajax-script で正常に機能します。 PHP 関数 'get-apps()' の先頭で削除されます。ただし、セッションが削除された場合、ajax ファイルでは使用できませんが、セッションの削除後に明らかに含まれているクラス「appXY」で再定義されています。セッションはクラス「appXY」で利用できるため、これはあまり意味がありません。

于 2012-09-14T21:00:29.047 に答える