ホームページ  >  記事  >  バックエンド開発  >  バックグラウンド表示プログラムによってリアルタイムで生成されたファイルをどのように処理すればよいですか?

バックグラウンド表示プログラムによってリアルタイムで生成されたファイルをどのように処理すればよいですか?

WBOY
WBOYオリジナル
2016-10-10 11:56:111371ブラウズ

質問

私はphpプログラムを書いています。その機能は、フロントエンドから渡されたパラメータを受け取った後、バックグラウンドで計算プログラムを呼び出し、パラメータに基づいて画像を生成することです(このプロセスには、約2秒程度の一定の時間がかかります)。もっと)。
最後に、インターフェイスで、画像が生成されるのを待ってから、画像を div に表示する必要があります。
問題は、イメージの生成中にインターフェースが応答しない状態になるということです
さらに、プログラムの実行に失敗してイメージが生成されない場合、それを知る方法がありません。

試した解決策

私が現在使用している解決策は、setInterval を使用して 1 秒ごとにポーリングし、画像が生成されたかどうかを確認し、画像の URL をフロントエンドのターゲット img タグに渡すことです。 10秒以内にURLが取得できなかった場合は生成失敗と判断します。

しかし、私はこの方法が非常に愚かであると感じており、もし失敗した場合、それを知るには長い時間がかかるでしょう。

そこでお聞きしたいのですが、この処理プロセスのユーザーエクスペリエンスを向上させるための良い提案や実装方法はありますか?

返信内容:

質問

私はphpプログラムを書いています。その機能は、フロントエンドから渡されたパラメータを受け取った後、バックグラウンドで計算プログラムを呼び出し、パラメータに基づいて画像を生成することです(このプロセスには、約2秒程度の一定の時間がかかります)。もっと)。

最後に、インターフェイスで、画像が生成されるのを待ってから、画像を div に表示する必要があります。

問題は、イメージ生成中にインターフェースが応答しない状態になるということです
さらに、プログラムの実行に失敗してイメージが生成されない場合、それを知る方法がありません。
試した解決策

私が現在使用している解決策は、setInterval を使用して 1 秒ごとにポーリングし、画像が生成されているかどうかを確認し、画像の URL をフロントエンドのターゲット img タグに渡すことです。 10秒以内にURLが取得できなかった場合は生成失敗と判断します。

しかし、私はこの方法が非常に愚かであると感じており、もし失敗した場合、それを知るには長い時間がかかるでしょう。

そこでお聞きしたいのですが、この処理プロセスのユーザーエクスペリエンスを向上させるための良い提案や実装方法はありますか?

簡単にするには、div を埋める回転 GIF を見つけるだけで、読み込みインターフェイスを作成できます。

  • 画像が生成されたかどうかをクエリするには、WebSocket の使用を検討できます

  • もう 1 つの提案は、イメージを生成するプログラムでイメージが正常に生成できるかどうかを判断し、そうでない場合はエラーを表すイメージを生成することです。これにより、イメージがフロントエンドに確実に送信されます。

  • ここで重要なのは、「10 秒間フィードバックがなかったら、失敗したはずだ」というロジックを使用しないことが最善であるということです。ただし、バックグラウンドで障害が発生した場合は、エラー処理コード ブロックがすぐに呼び出され、ユーザーに障害を通知するメッセージが返されます。 php、pythonでどのように処理されるのかよくわかりません:

    リーリー
Ajax を解決でき、成功と失敗のコールバックを使用して処理し、新しいバージョンにはタイムアウト処理もあります

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。