• 締切済み

Perl JavaScript ページ自動更新

superside0の回答

回答No.2

サーバー環境やいまのperlやデータファイルはそのまま使えたほうが 移行が楽でしょうから、私もajaxにするのが簡単だろうと思います。 (同時閲覧者数が多くて、サーバーでのプロセス数やコネクション数が  問題になるような場合は別ですが) まずは 10秒おきのreloadは取りやめてから HTML内のJavaScriptで ・読み込み済の最新投稿の投稿番号(or投稿日時秒)をJavascriptの変数に取り出す ・その投稿番号(投稿日時)をjqueryの$.ajaxの送信データにして新規cgiへ送る サーバー側の新規cgi (Perlでもなんでもいいけど) では ・上記の読み込み済の投稿番号(投稿日時秒)を受け取って ・サーバー上の投稿データにそれより新しいものがあれば、その投稿内容を  JSONかXML形式に整えて返す。(複数新規があれば、複数itemで)  (ロングポーリングとするなら、新しい投稿がなければ数秒sleepしてから   再度投稿データと比較するのを タイムアウトしない時間以内で繰り返す) ・なにも新規投稿がなければ、空データでなく、0件であることがわかる  JSON or XMLを返す HTML側のajaxのsuccessのイベント処理で ・サーバーが返したJSON or XML をパースし  それを表示中の画面にappendしていく(jqueryでのDOM操作)。 ・最新の投稿番号(or投稿日時秒)を入れたJavascriptの変数を更新する。 ・数秒後にこのajaxの再実行を予約する   (ロングポーリングしないならいまと同じ10秒かな)。 って感じになるかと。 なお、文字モードがSJISやEUC-JPだと 文字化けしやすいので、 HTMLとCGIの返しをUTF-8に統一したほうが楽です。

関連するQ&A

  • Perl JavaScript リアルタイム更新

    (1)サーバー側に置いてあるファイルの最終更新日時を取得 --> (2)へ 例)<--ここがPerlの処理? /test/log.txt --> 更新日時 2017/10/19 19:12 (2)-(1)ページに入った時間より新しければ、ページ更新 例)<--ここはJavaScriptの処理? /test/log.txt --> 更新日時 2017/10/19 20:25 (2)-(2)ファイルが更新されなければ、そのまま ユーザーA、ユーザーBが同時に掲示版を閲覧 ユーザーAが書込。 閲覧中のユーザーBのページがリアルタイムで更新 調べればWebSocketやSSLなどでてはくるのですが、 使えません・・・ ※私の技量・・・

  • Javascriptで自動更新

    あるページを10秒に一度、自動で更新させたいのですがなにかよい方法はありませんか? このサイトで見かけたスクリプトを試してみても動作しませんでした;; <script language="JavaScript"> <!-- min=60; setTimeout('reload()', min*1000); function reload() { location.href=location.href; } //--> </script> Javascriptで実現する方法があれば教えてください。

  • JavaScript Ajax テキストの更新時間

    var reload = ""; var reload = function() {  \$.ajax({   url: 'test.cgi',   type : 'get',   dataType: 'text',    success: function(data) {     \$('#text').html(data);     return false;    },    error: function(data) {     //alert('読込に失敗しました…');    }  });  setTimeout("reload()", 3000); } 現在3秒毎に更新としているのですが、 これを「log/log.txt」 の更新時間で、test.cgiを リロードさせるようにするには、 どうすればいいでしょうか? できればソースで教えて頂けるとありがたいです。 どうかよろしくお願いいたしますm(_ _)m

  • ページの自動ジャンプを止めるには

    「5秒後に自動的にジャンプします」などの自動ジャンプ機能は、JavaScriptのsetTimeoutを使うか、<META HTTP-EQUIV="Refresh...を使う方法がありますね。 これらの機能を持ったページに対して、ページを表示したまま、目的のページにジャンプさせないようにする方法はありますか? JavaScriptの方は、ブラウザのスクリプト実行機能を無効にしていればできてしまうと思うのですが、METAタグの方は何か回避策はありますか? といっても、実際に知りたいのは、「ジャンプを止める方法」ではなく「ジャンプを止めさせない方法」なのですが... たとえば、このページはどうしても5秒以上見せたくないという場合に、ユーザーが勝手に時間延長をしたりしないようにしたいときなどです。

    • ベストアンサー
    • HTML
  • トップページHTMLに更新日を自動的にさせる方法を探しています。

    トップページHTML ┣HTML1 |┗…HTML2 ┣HTML3 ┣CGI1 |┗…HTML4 ┗CGI2 …┗…DATA1 トップページHTMLに更新日を自動的にさせる方法を探しています。 HTML1にはHTML2のリンクが張ってあります。 HTML3はそのものを変更しています。 CGI1はHTML4のテンプレートを使って変更しています。 CGI2はDATA1に更新データを書き込んでいます。 トップページで表示させたい更新は ・HTML2 ・HTML3 ・CGI1 ・CGI2 以上の4つです。 ジャバスクリプトでもCGIでも何でも方法は問いません。

    • ベストアンサー
    • HTML
  • TempleMonkey 自動更新

    自動更新 TempleMonkeyにてそのまま使える記述でお願いします。 (function myloop(i) { setTimeout(function() { myfunc(); if (--i) myloop(i); },150000) })(1); function myfunc() { window.location.reload(true);} var myp = document.createElement("p"); myp.textContent = "Last update: " + (new Date()).toString(); $("#top").append(myp); この記述で指定のページを秒数指定で自動更新をしているのですが、そのページを操作中の場合はリロードをしなくする方法、もしくは秒数をリセットする記述をお願いします。 TempleMonkeyにてそのまま使える記述をお願いします。 #ユーザースクリプト #Javascript #Greasemonkeyスクリプト

  • JavaScript内にJavaScriptを読み込む方法

    HTML内に <script type="text/javascript" src="main.js"></script> という一行を追加すると、バナーが表示されるというスクリプトを作成しています。 main.jsは、 html = '<script language="JavaScript">'; html += 'var url0101 = "url01.xxx.jp";'; html += 'var url02 = "url02.oooo.jp";'; html += '</script>'; html += '<script language="JavaScript" src="http://xxx.xxxx.xxx/test.js"></script>'); html += '<script language="JavaScript">'; html += 'Function01("check")'; html += '</script>'; document.write(html); というような風になっており、 (1) 変数の宣言 ↓ (2) http://xxx.xxxx.xxx/test.jsの読み込み ↓ (3) (2)で読み込んだjs内の関数Function01を実行 という流れです。 FireFoxでは表示されましたが、IE6では (2)のjsを読み込む前に(3)のFunction01が実行され、 「オブジェクトを指定してください」のエラーが表示されてしまいます。 よい方法がありましたら教えていただけますでしょうか? よろしくお願いします。

  • javascriptの中で、perlのコマンドを実行できないか。

    javascriptの中で、perlのコマンドを実行できないか。 java:クライアント側の処理。 perl(cgi):サーバ側の処理。 なので、愚問かもしれないのですが、 ↓====================================== <script language="JavaScript"> <!-- function aaa(){  : EOM (この間に、perlの処理) print <<EOM; : } // --> </script> ↑====================================== と言った感じで、javascriptのfuncitonの中で、 perlを使って、データベースへの操作をしたいのですが、 やはり、無理でしょうか。 あるいは、代案などあればご教授願えませんでしょうか。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • JavaScript内にJavaScriptを読み込む方法

    HTML内に <script type=\"text/javascript\" src=\"main.js\"></script> という一行を追加すると、バナーが表示されるというスクリプトを作成しています。 main.jsは、 html = \'<script language=\"JavaScript\">\'; html += \'var url0101 = \"url01.xxx.jp\";\'; html += \'var url02 = \"url02.oooo.jp\";\'; html += \'</script>\'; html += \'<script language=\"JavaScript\" src=\"http://xxx.xxxx.xxx/test.js\"></script>\'); html += \'<script language=\"JavaScript\">\'; html += \'Function01(\"check\")\'; html += \'</script>\'; document.write(html); というような風になっており、 (1) 変数の宣言 ↓ (2) http://xxx.xxxx.xxx/test.jsの読み込み ↓ (3) (2)で読み込んだjs内の関数Function01を実行 という流れです。 FireFoxでは表示されましたが、IE6では (2)のjsを読み込む前に(3)のFunction01が実行され、 「オブジェクトを指定してください」のエラーが表示されてしまいます。 よい方法がありましたら教えていただけますでしょうか? よろしくお願いします。

  • チャットの自動更新について

    たぶんCGIのチャットルームだと思いますが、 自動更新にチェックを入れているんですが、 数秒たっても自動更新しなくなってしまいました。 更新ボタンを押すと相手は会話しているみたいで、 何列も表示されます。 自分の運営するチャットではなく人のチャットルームですが、 全然違うところで試しても同じような結果でした。 不便なので自動更新できるようにしたいのですが、 なにがおかしいのでしょうか?

    • ベストアンサー
    • CGI