jQueryのloadや$.ajaxに関する質問
- jQueryのloadや$.ajaxを使用して別のファイルからニュースなどを取得し、ウェブサイトを更新する場合、GoogleやYahooは通常の更新として扱ってくれるのか?PHP生成のHTMLも拾うのか?
- Ajaxで呼び出したニュースや記事は通常のHTMLの更新のように見なされ、クロールされる場合、ニュース以外にもSSIの代替として使用したい。
- 質問者はjQueryのloadや$.ajaxに関して理解が足りず、ニュースの更新やクロールについての情報を求めている。
- ベストアンサー
jQueryのloadや$.ajaxに関して質問です。
jQueryのloadや$.ajaxに関して質問です。 ウェブサイトにおいて、 例えば、index.htmlがあるとします。 jQueryのloadや$.ajaxで、 .xmlや.txtなど別の場所にアップしたファイルから、 ニュースなどをとってきて更新した場合、 googleやyahooは、 indexにニュースが追加されたと思って、 通常の更新のように見なしてくれるのでしょうか? 最近はPHPで生成されたhtmlも拾うようですが、 勉強不足で、自分の中うまく把握できません。 ajaxで呼んできたニュースや記事が、 通常のhtmlの更新のように見なされ(あるいは近いものとみなされ)、 index.htmlに書かれたニュースとしてクロールされるのでしたら、 ニュースなどにとどまらず、 SSIの代替などでも積極的に使用して行きたいのですが。。。 どなたか、ご教授よろしくお願いいたします。
- AJAX
- 回答数1
- ありがとう数21
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Googleについてはこちらのサイトが参考になると思います。 http://www.sem-r.com/seo/20100305195304.html QT:クローラはJavaScriptを実行できないためコンテンツを読み取ることができない と書いてあるので"通常の更新のように見なしてくれない"ってことになりますね。 解決方法は「フラグメントを利用しないページの対処法」にあります。以下引用です “例えばAJAXサイトのトップページは、上記の説明に従えば www.example.com#!home となりますが、インデックスするURL は www.example.com としたい要望もあるはずです。この場合、ページの上部に次の特別なメタタグを記述します。 <meta name="fragment" content="!"> このタグは、ugly URLをクロールするように指示するためのMETAタグです。この記述があると、クローラは次のように処理します。まず、www.example.com にアクセスした時、URL を www.example.com?_escaped_fragment_= に変換してサーバにリクエストします。サーバ側はこのリクエストを受け取ったときに www.example.com のスナップショットを返せば、そのステートのコンテンツがインデックスされます。” How do I create an HTML snapshot? http://code.google.com/intl/ja/web/ajaxcrawling/docs/html-snapshot.html
関連するQ&A
- Ajaxの動き
googleと本で調べたのですが、今いちわからないため質問させてください。 (1)教科書から、Ajaxは、XMLをJavascriptでやり取りしている非同期通信という定義なのはわかりましたが、結局、AJAXを使うということは、HTMLに、<Script>のタグで、JQueryなどのパスを書くということなのでしょうか? AJAXは概念的なものであって、プログラムやモジュールそのものではないと捉えています。 (2)Ajaxによる非同期通信は、何をきっかけとして通信が始まるのでしょうか? 通常は、FORMがSUBMITされたときに、サーバにリクエストがいくという認識ですが そもそも、Ajaxは、何をイベントとしてハンドルしているのでしょうか?(何をきっかけに処理が始まっているのでしょうか?) HTMLに、<Script>のタグで、JQueryのパスを書くと、ハンドルする機能が使用されるのでしょうか? Ajaxでも「リクエスト」は行われているけれども、処理結果として戻されるものがXML形式であるだけだという理解で良いのでしょうか?
- ベストアンサー
- AJAX
- jqueryで画像を切り替えたい
以下ソースがあります。 ●main.js $(function(){ jQuery.ajax({ url : "./news.txt", type : "get", success : function(data){ alert(data); } }); }); ●news.txt test と記述しています。 ●index.html <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>jQuery Sample</title> <script type="text/javascript" src="jquery-1.7.1.min.js"></script> <script type="text/javascript" src="main.js"></script> </head> <body> <h1>jQueryサンプル</h1> <p>非同期通信の処理</p> </body> </html> この三つのファイルを同じ階層に置き、index.htmlで実行したところ 非同期通信(testのアラート)が表示されました。 そこで、 index.htmlファイルの左側にメニューを設けて、 メニューをクリックすると、画像のみが切り替わるという 内容で、jqueryによるajax実装を行いたいのです。 (左のメニュー1がクリックされれば、リンゴの画像。 メニュー2がクリックされれば、みかんの画像等) ulタグと、jquery関数にどういう仕掛けを入れると 果物画像の入れ替えが行えるでしょうか。 ご教授お願いします。
- ベストアンサー
- AJAX
- Ajaxの勉強
Ajaxのマルチウィンドウというのを使ってみたくて先日 http://okwave.jp/qa2822223.html こちらで質問させていただいたのですがなかなか回答が得られず基礎から勉強したいのですが・・・ なかなかよいサイトにめぐり合えません(><) 基礎から勉強できるサイトをご存じないでしょうか? http://www.openspc2.org/JavaScript/Ajax/Ajax_study/index.html 先程こちらのサイトを見ていたのですが第2章4節で既に躓いてしまいました data.txtを読み込んでフレーム内に表示するものだと思うのですがうまく表示されません 第1章4節で必要な知識として HTML スタイルシート JavaScript XML サーバー側のプログラム (CGIやデータベース等) とあります。XML以外はまだ勉強中の身ではありますが多少は扱えます XMLの勉強からはじめた方がよいのでしょうか?
- ベストアンサー
- JavaScript
- AJAXがうまくいかない。
AJAXがうまくいかない。 http://schoo.jp/class/1868 こちらの動画でajaxを使ってhtmlにもともとないニュースを非同期通信で追加する方法をやっているのですが、htmlは表記されてもニュースが追加されません。 lv9の無料連鎖場にアップロードしてみたところ下記二つ自体は見れます。 ドメイン/test/ajax-test/rss.xml ドメイン/test/ajax-test/ ・ ress.xml <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=4.1.1</generator> <item> <title>Bootstrap Studio</title> <link>http://blog.h2o-space.com/2015/03/640/</link> <comments>http://blog.h2o-space.com/2015/03/640/#comments</comments> <pubDate>Mon, 16 Mar 2015 23:32:25 +0000</pubDate> <dc:creator><![CDATA[TANIGUCHI Makoto]]></dc:creator> <category><![CDATA[メモ]]></category> <category><![CDATA[bootstrap]]></category> <guid isPermaLink="false">http://blog.h2o-space.com/?p=640</guid> <description><![CDATA[<p>Bootstrapのデザインツール。Web上のサービスが多い昨今ですが、こちらのツールは Windows/Mac/Linux向けのデスクトップアプリケーションとしてリリースされるようです。 2015年 3月リリース予定で … <a href="http://blog.h2o-space.com/2015/03/640/" class="more-link">続きを読む <span class="screen-reader-text">Bootstrap Studio</span></a></p> <p>The post <a rel="nofollow" href="http://blog.h2o-space.com/2015/03/640/">Bootstrap Studio</a> appeared first on <a rel="nofollow" href="http://blog.h2o-space.com">H2O BLOG</a>.</p> ]]></description> <content:encoded><![CDATA[<p>Bootstrapのデザインツール。Web上のサービスが多い昨今ですが、こちらのツールは Windows/Mac/Linux向けのデスクトップアプリケーションとしてリリースされるようです。</p> <p>2015年 3月リリース予定で、現在メールニュース購読者を募集しています。</p> ~ ・ index.html <script type="text/javascript" src="jquery-2.1.3.min.js"></script> <script type="text/javascript"> // ここ $.ajax({ url: 'rss.xml', dataType: 'xml', async: ture, success: function(xml) { make_news(xml); } }); function make_news(xml) { var html = ''; $(xml).find('channel item').each(function() { html += '<li><a href="' + $(this).find('link').text() + '">' + $(this).find('title').text() + '</a></li>'; }); $('#news').html('<ul>' + html + '</ul>'); } </script> まさかlv9などの無料連鎖場ではクライアントサイドのajaxが使えないなんてことはないですよね
- ベストアンサー
- JavaScript
- jQueryのAjaxリクエストの動作について教えてください。トンチン
jQueryのAjaxリクエストの動作について教えてください。トンチンカンなことを言っていたら許してもらいたいのですが・・・ loadメソッドを使って別テキストから情報を持ってきています。 リロード(最新の情報に更新)してもうまく表示が変わらない場合があります。 ≪1≫絶対にうまくいく場合 1.テキストの中身を変更 2.ブラウザを開く 3.変更した情報が表示される。 ≪2≫たまに失敗する場合 1.ブラウザを開く 2.テキストの中身を変更 3.リロードする。F5を押す。最新の情報に更新...etcを実行してみる →このときは変わる時もあればいくら更新をしても変わってくれないときもあります。 この状態で新たにブラウザを開くと現状100パーセント更新されています。 リロードしても100パーセント変更されないのはなぜでしょうか? キャッシュがあるのでしょうか?? また、WEBページを開いたままにしておいてテキストを変更すれば勝手に変わるなんてことは理論上不可能ですよね? ページを見ている人にリロードをしてもらうことをお願いするなんて非現実的ですし・・・ ちなみにテキストの中身はVB.NETでやっています。サーバサイド側で何らかのキックを行ってloadだけ動かせたら面白いですが(汗)
- ベストアンサー
- AJAX
- jQuery Mobileでページ数を多くする場合
jQuery Mobileでサイトを構築しようとしています。 jQuery Mobileの場合、ひとつのindex.phpに全てのページを書きいれ、a href=#13 a href=#453などのようにして飛ばす仕組みになっています。 例えば500ページのサイトになると、index.phpがMB単位になってしまい、これでは、重くてトップページの読み込みが鈍重になってしまうと考えます。 このような場合、やはり、 *data-ajax=“false” ,などを使って通常のHTMLのように複数にページ立てするのが適切なのでしょうか? それとも、jQuery Mobileの場合、「読み込みが#ページ単位になっているため、ページ数が500ページあったとしても各ページは軽い」というようなことがあるのでしょうか? 宜しくお願い致します。
- ベストアンサー
- AJAX
- サーバー上でJqueryが使用できない
サーバー上でJqueryが使用できない jQueryを使用して、htmlに外部txtファイルの内容を表示しようとしています。 ローカル上では正常に動作するのですが、サーバーにアップしてみてみると、 javascriptのエラーが発生してし、txtの内容が表示されません。 ※IE8で確認したところエラー詳細は「オブジェクトを指定してください」 ※IE8とFireFoxで確認し、ともに表示されない。 原因として何が考えられるでしょうか? ちなみにソースは以下の様な感じです。 (txtファイルはhtmlと同階層に置いてあります) <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <script type="text/javascript" src="./js/jquery.js" ></script> <script language="JavaScript"><!-- function setNews(){ $("#news").load("news.txt"); } //--></script> </head> <body class="top_body" bgcolor="#000000" onload="setNews();"> <p id="news" class="news"></p> </body> </html>
- ベストアンサー
- JavaScript
- トップページしかインデックスできない構造、直したい
数十万件の情報をデータベースで扱うWebサイトを作成しています。 トップページはindex.phpです。 1. トップページで検索したりフィルタリグしたりするとそれに該当したデータがjQuery Ajaxで取得してindex.php上にリスト形式で表示されます。 2. さらにそのリストからどれかアイテムを一つクリックするとjQueryダイアログが開いてそこに詳細情報が表示されます。 これら全てトップページのindex.php上で動作しますので一切別ページに遷移しません。 jQueryのAjaxを使ってphpにアクセスし、データベースから取得した情報をindex.php上で表示しているだけです。 そのため、sitemap.xmlに追加するページがindex.phpしかなく、これ以上ページを追加しようがありません。 GoogleWebmasterToolでもインデックスされているのはindex.phpのみです。 情報を動的に取得し、なおかつAjaxでindex.phpで取得した場合はどのように数十万件のページのような情報をインデックスすれば良いのでしょうか? 何か良い案があればお教えください。 どうぞよろしくお願い致します。
- 締切済み
- HTML
- google クロールの仕組み
google webmasterを使用してホームページを作成している方で、 googleのクロールの仕組みがわかる方いましたら、教えてください。 1.google webmasterでの「Fetch as Google」は、設定したページを使うしてもらうためのものですか。 2.robots.txtはクロールしてもらいたいファイルの制御のために作成し、 sitemap.xmlはクロールした中でインデックスしてもらいたいファイルの一覧を作っておくファイルということでよいでしょうか。 3.sitemap.xmlでhtmlファイルだけ設定しているのですが、みなさんはどんなファイルを設定しておりますか。
- ベストアンサー
- SEO
- WebサービスからのxmlがIEで表示されない
ウェッブサービスのxmlデータをjQuery Ajaxを使ってページ上に表示したいのですが、下記のコードでは、IEのみ表示できず悩んでいます。 jQuery(document).ready(function($){ getAjaxData(); }); function getAjaxData(){ $('#text-box').append('getAjaxData'+'<br>'); jQuery.ajax({ url: ウェッブサービスから提供されたxmlのURL, type:'GET', error:errorMsg, success:outputSuccess }); } function outputSuccess(data){ $('#text-box').append('success!'+'<br>'); var txt = jQuery(data).find("root").text(); $('#text-box').append(txt); } function errorMsg(){ $('#text-box').append('error!'+'<br>'); } Firefox,Chrome,Safari,Operaでは、上述コードのように、テキストボックスに最初getAjaxDataが表示され、次にsuccess!、さらにxmlの内容が表示されます。しかしIEのみ(IE9)getAjaxDataの次にerror!のテキストが表示され、xmlデータを読み込むことができません。 ネットでいろいろと調べましたが解決方法がみつかりません。 当方50歳を越えて独学でjQueryなど勉強していますが、まだまだ浅学のためどうしたらいいのか悩んでおります。 ぜひ解決法をご存知の方、ご教授いただければ幸いに存じます。 どこかいい解決法が書いてあるページのご紹介でもかまいません。 よろしくお願い申し上げます。
- ベストアンサー
- JavaScript
お礼
ご回答ありがとうございます。 リンク先、非常に参考になりました。 SSIやPHPのインクルードに比べると、 通常のウェブサイトで使用するには敷居が高い印象ですね。 ただ、実行しているサイトもありそうなので、 探ってみたいと思います。 自分の探り方では出てこないURLでしたので、 ありがとうございました。