私は「奇妙な状況にあり、どこから見始めるのかよくわからない」。フロントエンドにはknockout.jsフォームがあり、バックエンドにはCakePHPがあります。
今のところ、私は何らかのJSONデータをknockout.jsフォームからCakePHPに送ります。このPHPは処理をいくつか行い、その結果をJSONフォーマットでエコーアウトしてノックアウトJavaScriptファイルに返します。
まあ、問題は私がこのPHP設定をしているときですCakePHPを通してそれはおそらく時間の1/4しか働かないようです。私のWebルートにこのPHPファイルがあると(Cakeには関連付けられていません。ノックアウトはバックエンドに依存しないため)、100%の時間で動作します。
だからここに2つのデータフローがあります
Fails frequently: knockout.html -> knockout.js -> CakePHP Controller -> echo in CakePHP view-> knockout.js -> knockout.html
Works 100%: knockout.html -> knockout.js -> PHP in webroot, echo from the same page -> knockout.js -> knockout.html
私は自分のWebルートでPHPファイルを使用するだけですが、データベースに対していくつかのことを問い合わせる必要があります。また、外部の情報源ではなく、Cakeに問い合わせることすべてを続けたいと思います。
CakePHPメソッドは時間がかかりすぎて失敗する可能性がありますが、結果がすぐに戻ってこないからです。
編集 - コントローラを変更したので、計算では、単にJSONエンコードされたテキストをビューに渡すだけです。これによりエラーは発生せず、100%の時間で機能しています。それで、CakePHPがあまりにも長い時間をかけてエラーを引き起こしていると言っても安全ですか?私はフレームワークが単なる普通のPHPよりも時間がかかることを理解していますが、なぜこれが失敗するのでしょうか。私は激しい計算はしていません。
回答:
回答№1は0私はそれが非常に回り道のやり方で働くようになった。現在は100%動作していますが、どのようにしなければならないかには満足できません。
私が説明したように、私は自分でPHPQueryを使っています。ItemsController私はこのすべての論理を取り、ケーキの構造の外側でWebrootの中だけに別のPHPファイルを作成しました。そのため、それぞれのアクションに対してItemsController関数を呼び出すのではなく、Webルートのファイルを呼び出します。このファイルからデータベースにアクセスし、必要なものを検索してから、PHPQueryのタスクを実行します。
非常に奇妙な。 CakePHPの外部で100%動作します。 CakePHP関数で使用されたとき、50%以上の時間失敗します。手に入れることはできませんが、少なくともうまくいきます。