2012-04-29 13 views
0

多分、私はここで単純なものが欠けているかもしれませんが、それは私をイライラさせます。だから私は、リンクの周りのこのdivがクリックされたときに私のサーバー上で何かを更新する必要がある(私はanalyticsを介してクリックしている)。私はクリックイベントを行い、ajaxコールを(getを介して)行うと考えました。新しいページがロードされる前にAjaxコールが実行されていない

$.get("stat/418491289); 

しかし、問題は、呼び出しが行われていないことです。ユーザーが次のページに送信されていて、get callが完了/呼び出されていないことを示していません。サーバー上でデータベースを更新するので、私は知っているだろう。たぶん、私はアヤックスコールをしてはいけない、あるいは何かしなければならないかもしれないかもしれないが、わからない。私はそれがdivにラップされているので、リンクアクションを中断することはできません。私が理想的にやってみたいのは、要請を断ち切り、心配しないことです。統計情報を更新することは重要ではないため、時間の1%で動作しない場合はそれ以上の状態です。どうすればいい?

私は明らかではないかもしれないと思います。私が尋ねるのは、ブラウザがリンク先のページに移動する前に、javascriptを使用してサーバーにリクエストを送信できますか?私は応答が何であるか気にしない、私はちょうど要求を送る必要がある。

+0

を配置する必要がありますアンカータグの 'href'を' example.com'から 'example.com?ref = page1'に変更することができます。その後、ユーザーが次のページに移動した後、 'ref'パラメータをチェックして分析を更新します。これはJSなしでも動作します。 – xbonez

+0

赤、3nigmaが更新されたコメント。私はそれがあなたの要件によると思う。 –

答えて

2

あなたは

$("#linkID").click(function(e){ 
e.preventDefault(); 
//ajax call here 
}); 

のようなリンクのデフォルト動作をキャンセルするpreventDefault INORDERを使用するか、それがはるかに簡単ではないでしょうreturn false;

$("#linkID").click(function(){ 

    //ajax call here 
    return false; 
    }); 
1

ページのネットワークトラフィックを調べて、取得要求が行われているかどうか(サーバーによって処理されていない場合)を確認しましたか?おそらく、URLが正しくなく、404応答を返すでしょう。

また、クリックイベントを処理する方法もあります。 divクリックハンドラからajaxリクエストが行われており、ユーザーがlink()をクリックしている場合、リンクはクリックを最初に処理してユーザーをページに移動させます。デフォルトのリンクハンドラがクリックを親要素に伝播するかどうかはわかりません。

これが問題の場合、問題を見つけるのに役立ついくつかのコードが表示されやすくなることがあります。

1

お客様のURLに2番目の二重引用符がありません。私は明確に質問を理解している場合

関連する問題