/ / CakePHP GETリクエストが時間の一部に失敗する - php、javascript、cakephp、knockout.js

CakePHP GETリクエストは時間の一部しか失敗する - php、javascript、cakephp、knockout.js

私は「奇妙な状況にあり、どこから見始めるのかよくわからない」。フロントエンドには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%以上の時間失敗します。手に入れることはできませんが、少なくともうまくいきます。