こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

-広告-

解決済みの質問

遠隔サーバー情報取得後発動のjavascript

スマートフォンアプリをjavascriptで作っております。

●【現在できていること】

【1】まずは、アプリ内から、自分の端末情報(下記の場合「G:8116556330」(取得方法はappleのシステムに準ずる)を取ります。(下記はわかりやすくするために固定で記載してますが、実際にはjavascriptによる読み込みとなります)

【2】次に、そのデータに関する情報を、自社サーバーのデータに取りに行きます。
( $.post("https://hoge.jp/search.php", {search_term : name_id}, function(data))

【3】その情報を表示させます。


【現在の仕様】
【3】を表示させるためには【1】【2】が完全取得された後に【3】用のfunctionを発動させなければなりません。
【1】取得のタイムラグ、【2】取得のタイムラグ、およびサーバーから端末までのタイムラグがあることから、現在、下記のようにbodyが読み込まれて5秒後に「document.getElementById('search_button2').click();」の形で時差クリックさせ「.click(function(e)」を発動させて【3】を表示させています。


【困りごと】
上記の方法だと、回線の混雑にかかわらず5秒後にクリックが発動されてしまうため、混雑時には表示できないリスクがあります。

【やりたいこと】
サーバーから端末に完全に情報を取得出来てから、即座に【3】用のfunctionを発動させたいです。または、クリックなど使用せず下記のGETスクリプト内で自動発動する方法があれば尚嬉しいです。
HTMLの読み込み後であればonloadが使用できますが、サーバー情報取得後というのが分かりません。ご指導いただきたくお願いいたします。


【GETスクリプト】
<script type="text/javascript">
var name_id;
name_id = 'G:8116556330';
$(document).ready(function(){
$("#search_button2").click(function(e){
e.preventDefault();
ajax_search();
});
});
function ajax_search(){
$("#search_results").show();
$.post("https://hoge.jp/search.php", {search_term : name_id}, function(data){

if (data.length>0){
$("#search_results").html(data);
}
})
}
</script>

【時差スクリプト(body読み込み後5秒後にボタンをクリック)】
<SCRIPT language="JavaScript">
function loadHello(){
 document.getElementById('search_button2').click();
}
 setTimeout(loadHello, 5000);
</script>

【Body要素 ボタン 表示場所】
<body onLoad="loadHello()">
<a id="search_button2">search_button2</a>
<div id="search_results"></div>
</body>

投稿日時 - 2016-01-27 09:30:18

QNo.9117774

困ってます

質問者が選んだベストアンサー

$.post のsuccess処理の中で document.getElementById('search_button2').click(); を実行すればいいんじゃないでしょうか?

それと、jQuery 使って書いている所と、純粋なJavaScriptで書いている部分が混在してますが、統一した方がいいと思いますよ。

投稿日時 - 2016-01-27 13:10:50

お礼

有難うございます。
当方の書き方が悪く、$.postが【3】より早く発動するというかきかたをしてしまいました。実際は、【3】の後に$.postが発動します。
ただ、success処理の中で document.getElementById('search_button2').click(); を実行というヒントを頂きましたので、うまい処理が組めそうです。
本当にありがとうございました。

投稿日時 - 2016-01-28 12:21:37

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(1)

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-