0

ページをリロードせずにフォームがデータベースに自動アップロードされることを意味する、ページのリクエストなしでフォームを送信する最良の方法について、可能な限り調べようとしています。この場合、パフォーマンスに関して知りたいです。

注: 特に私が尋ねたものではありませんが、この質問に答える Stackoverflow に関する多くの投稿があります。

私が知っている方法は、JavaScript、AJAX、および jQuery の 3 つだけです。以下の両方の例。

JavaScript :

$(document).ready(function(){
        submit_form();
});

function submit_form () {
    $.post('process.php', $("#myform").serialize(), function(data) {
        $('#results').html(data);
    });
} 

AJAX :

            $.ajax
                ({
                type: "POST",
                url: "file.php",
                data: ,
                cache: ,
                success: function (html)
                    {
                        alert("Order Submitted");
                    }
                });

jQuery:

$('#myform').submit(function()
{
    $('#myform').ajaxForm();
    return false;
});

これを達成するためのより良い方法はありますか? もしそうなら、前述の JavaScript、AJAX、jQuery を含めて、どちらが優れているのでしょうか? そして、どちらが速いですか?

4

4 に答える 4

1

それはあなたのAPIに依存します。つまり、データを送信する場所を意味します.多くの場所で、コードを誰かのバックエンドコードと統合する必要があるかもしれません. キャンバスなどを描画するようなクレイジーなコンポーネントを作成し、その状態をバックエンドに保存する必要がある場合など、バックエンドが要求する情報を渡すことが常に最善です。上記の方法ではそれを行うことは不可能です。キャンバスの状態を保存する要素を作成している場合を除きます。したがって、私の意見では、バックエンドに必要なものだけを送信できるので、JS オブジェクトを使用するのが最適です。

$.ajax( {
  type: 'POST',
  url: file.php,
  data: {'key':'value'},// key should be exactly same as backend API demands it.
              // value should be in exactly same formate as API demands it.                           success: function(data) {
            $('#message').html(data); // Here is a success message you can replace it according to your desire.
        }
    } );
}
于 2013-06-30T19:37:05.713 に答える