Google Ajax Feed APIでRSSフィードを読み込み表示していますが、更新反映が遅いため(修正・削除したはずのエントリーが、古いままで表示される)、以下の方法を試してみたいと思っています。
http://www.lepracaun.info/blog/2007/06/google_aj …
現在は
var feedurl = "http://glftp.main.jp/blg/?feed=rss2&cat=3";
var feed = new google.feeds.Feed(feedurl);
となっているのですが、これをそのまま上記ページのように
var feedurl = "http://glftp.main.jp/blg/?feed=rss2&cat=3";
var feed = new google.feeds.Feed(feedurl)+"?"+(new Date()).getTime());
としてみても何も表示されません。
完全に手探りなのですが…どこかが間違っているのでしょうか?
No.4ベストアンサー
- 回答日時:
まず結果から。
修正したものをUPしました。http://www13.atpages.jp/makotogawa/test3.html
以下,少し詳しい話です。
if(flag == 0) continue;という行は,関数宣言の中にあります。
その次の行に関数宣言を持ってくることは出来ない筈です。
(もしかしたら厳密には可能かもしれません。javascriptにそこまで詳しくないので分かりかねます)
また,僕はdispfeedという関数を使わずにスクリプトを書きました。これは無名関数と呼ばれる仕組みを利用した方法です。より詳しい話は割愛します。
とにかく,僕のスクリプトでは無名関数を利用しており,その違いからコピー&ペーストでは上手くいかなかったようです。
(僕の元のソースではdispfeedという関数を宣言していません)
上に挙げたtest3.htmlではdispfeedという関数を宣言,利用していますので,そのまま使って下さい。
あとはgoogleのAPIとは無関係なjavascriptとcssの範囲で色々やれば大丈夫だと思います。
最後に,今回の話を自分のブログに書いたので,それも参考URLに挙げておきます。
参考URL:http://d.hatena.ne.jp/m_ogawa/20100301/1267423085
丸投げしてしまって申し訳ございませんでした…
ご親切にありがとうございます!;;
feedを取得できるのは便利でも、反映が遅すぎるのが問題だったのですが
これで問題は解説されたと思います。
手探りでやっていたので大変ご迷惑をお掛け致しましたが、ブログの記事を拝読致しまして、初心者ながら理解が深まりました。
誠にありがとうございました。
No.3
- 回答日時:
cat=3はカテゴリ指定なのですね。
では,RSSを取得する時点ではカテゴリを指定せず,取得したRSSからカテゴリごとにデータを取捨選択する方法ではどうでしょうか?
http://code.google.com/intl/ja/apis/ajaxfeeds/do …
googleのリファレンスを読むと,categories[]というクラス変数があります。これを使えばブログのエントリに割り当てられているカテゴリ文字列を取得できます。
少々面倒ですが,特定のカテゴリの記事だけを選別して表示する事は可能になります。
http://www13.atpages.jp/makotogawa/test.html
こちらに「更新履歴」というカテゴリの記事のみを選別するHTMLをupしてみました。
この方法であれば,cat=3というクエリをURLに入れる必要がなくなります。如何でしょうか?
参考URL:http://code.google.com/intl/ja/apis/ajaxfeeds/do …
ご回答誠にありがとうございます。
フィードを取得してから、categories[]で絞る感じなのでしょうか?
見本まで作っていただいてありがとうございます;;
ulとliでマークアップして、記事へのリンクと日付を足したかったので、今までのスクリプトをif(flag == 0) continue;の下に足してみたりしたのですが、そうすると動きません…
文法チェックしてみたのですが英語でわからず…頼り切りで申し訳ないのですが、間違っている点をご指摘いただけないでしょうか…m(_ _;m)
http://gurrenavi.e-whs.tk/test2.html
No.2
- 回答日時:
URLを見てみると,すでにいくつかクエリ(引数)があるようなので,?ではなく&で繋いでみて下さい。
var feedurl = "http://glftp.main.jp/blg/?feed=rss2&cat=3";
この行を
var feedurl = "http://glftp.main.jp/blg/?feed=rss2&cat=3" + "&" + (new Date()).getTime();
としてみてはどうでしょう?
次に,クエリのcat=3が気になります。
当方でテストしてみたところ,ページ数のようなパラメータかな?と思いました。(想像にすぎません)
結果論ですが,当方でテストした結果このcat=3を削除するとうまくいきました。結局次のようになります。
var feedurl = "http://glftp.main.jp/blg/?feed=rss2" + "&" + (new Date()).getTime();
僕のサーバでテストしてみたところ,今のところは上手くいっています。
URLはこちらになります。
http://www13.atpages.jp/makotogawa/test.html
新しいエントリを追加して,上のページに反映されるか試してみて下さい。
ご返答ありがとうございます!教えていただいた
var feedurl = "http://glftp.main.jp/blg/?feed=rss2&cat=3" + "&" + (new Date()).getTime();
でテストしてみたのですが、やはり400:Feed could not be loaded.が出てしまいました。
そうなんですよね、cat=3を抜くと動作するのですが…
やりたい事というのが、「cat=3」で特定のカテゴリのフィードのみ取得+キャッシュ騙しで反映を早くする というのが目標なんですが、両方やるとエラーが…
var feedurl = "http://glftp.main.jp/blg/?feed=rss2&cat=3"; のみではちゃんと動くのですが、
+ "&" + (new Date()).getTime(); をつけるとエラーが出ます。
なんだろうなぁ。
No.1
- 回答日時:
はじめまして。
同じ事で悩んでいました。var feedurl = "http://glftp.main.jp/blg/?feed=rss2&cat=3";
var feed = new google.feeds.Feed(feedurl)+"?"+(new Date()).getTime());
これを,
var feedurl = "http://glftp.main.jp/blg/?feed=rss2&cat=3";
var feed = new google.feeds.Feed( feedurl + "?" + (new Date()).getTime() );
とするか,
var feedurl = "http://glftp.main.jp/blg/?feed=rss2&cat=3"+"?"+( … Date()).getTime();
var feed = new google.feeds.Feed( feedurl );
とするとうまくいくはずです。
(元のソースだと括弧の数が合わないはずです。単なるミスではないでしょうか)
僕の環境で確認したところ,ばっちりキャッシュを再取得してくれました。
ただ,RSSを取得する速度は少し遅くなりますね。
ご回答ありがとうございます!
早速ご提示の方法で試してみたのですが、「400:Feed could not be loaded.」と出てしまいフィードが読み込めないようです。
何故なんでしょうか…
このエラーメッセージで検索しても日本語のページがほとんどなく…困りました。
ちなみにキャッシュ騙しをしない状態では、以下のような状態ですが、正常にフィードを読み込んでいるようです。
function initialize() {
var feedurl = "http://glftp.main.jp/blg/?feed=rss2&cat=3";
var feed = new google.feeds.Feed(feedurl);
feed.setNumEntries(999);
feed.load(dispfeed);
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS ホームページにブログ記事をサムネイル付きで掲載する方法 2 2022/11/25 14:55
- その他(ネットショッピング・通販・ECサイト) 至急教えてください このサイトで買い物をしたいのですが、変な詐欺みたいなサイトではないですよね? h 3 2023/08/16 18:46
- JavaScript gasについて 1 2022/05/31 21:51
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- その他(パソコン・周辺機器) ゲーム用パソコン 5 2023/02/13 09:29
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- Chrome(クローム) 【Google】「同期は有効です」と表示されているがブックマークが同期されていない 2 2022/11/17 13:32
- その他(IT・Webサービス) WordPressプラグインSite Kit by Googleがメールアドレスを出力している 1 2023/06/24 21:31
- 英語 By following established anatomic landmarks, direc 2 2022/09/20 20:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HTMLで作った時報アプリが動き...
-
google apps scriptの終了のさせ方
-
C#OpenCv V4にのエラーに関する...
-
リンク集をCSVファイルで管理し...
-
特定のclassを表示、非表示にする
-
ジェネレーターの作り方
-
javascriptカウントダウン終了...
-
Ajaxでタイムアウトしてしまう
-
今日からnヶ月後(前)
-
カンマで終わってるのはセミコ...
-
ローカルにあるファイルを検索...
-
引数なしの関数で疑問です
-
テーブルセル内のinput要素のna...
-
翌月を取得するGASが分かりません
-
ボタンを押すことでテキストエ...
-
なぜmatchメソッドがエラーにな...
-
var exports = exports || {}; ...
-
1日1回引けるJavaScriptおみく...
-
JScriptでExcelの全シートにア...
-
スマフォではボタンを表示させ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
google apps scriptの終了のさせ方
-
C#OpenCv V4にのエラーに関する...
-
GASでundefinedエラーが出ます
-
ローカルにあるファイルを検索...
-
JavaScriptで文字列の特定文字...
-
ジェネレーターの作り方
-
javascriptでiframeのURL変更は?
-
なぜmatchメソッドがエラーにな...
-
ASP.NET MVCでObjectをjsに渡す
-
gas スプレッドシートがアクテ...
-
Google Apps Script で添付ファ...
-
html javascript リンク先アド...
-
ASP.NETのコントロールの値をJa...
-
javascriptでテーブルに追加し...
-
C言語の質問です HTMLでこのよ...
-
JavaScriptで決まった「時刻」...
-
翌月を取得するGASが分かりません
-
特定のclassを表示、非表示にする
-
どうすれば良いでしょうか?
-
HTMLにWSHを組み込む
おすすめ情報