Recent

ほんとかなSEOトピック

効果はまだ検証中のトピック。


検索エンジンにキャッシュされるには一ページあたりのファイルサイズは100kくらいまでが良い。むしろ30kほどが良い。

作ってみたショッピングサイトでは、当初1ページ辺り200kであった。phpで作っているので、ユーザビリティを考えた時に、比較・検索するのに一度にガッツリとデータを持ってきたほうが良いかなと考えたため。
はじめは一ページ辺り90件をデフォルトとした。しかしキャッシュされる速度が遅いため、1ページ辺り100kほどとした所、若干速度が上がったように感じられる。(単に時期的なものかもしれない所は否めない)


ページ内リンクタグでの rel="nofollow" の多用はペナルティが起こる

これは一週間ほど試してみたのだが、クローラの順回がかなり悪くなったように感じられる。同条件下での比較で統計を取らないと断定はできないが。rel="nofollow" を仕込んだのを戻した所なので、これからの推移に期待したい所。

関連の話題を探す@人気ブログランキング

UTF-8 での FORM ボタンの文字が浮く(IE)

UTF-8でかかれたソースを、IEで見ていて気づいた。
FORMのSUBMITボタンの文字が若干浮いている。(上側、画像の一番左。)また、アルファベットを使用するとうまくセンタリングされるようだ。(グーグルとgoogleの違い)

SJISにするとちょうどセンタリングされる。(下側)

UTF-8
utf-8
SJIS
SJIS


そこで、スタイル宣言を用いてpaddingを入れる。(下記ソースも参照)

padding-top:2px;

これでぴったり真ん中に文字が表示された。(2、3、5番目。3は1px)



ついでに text のあれこれも。paddingとline-heightを使うとめちゃめちゃになります。
FORM_IE



以下はfirefoxでの表示です。line-heightがいい感じに使えてます。
FORM_firefox


文字がでかいフォームは気にしないで下さい。サイズどこまであげられるかと思いまして・・・。いくらでもいけるようです。

ソース
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<title>TEST</title>
<style>
input{
margin:10px;
}
.i2{
padding:1px;
}
.i3{
padding-top:2px;
}
.i5{
padding-top:2px;
}


.i7{
padding:1px;
}
.i8{
line-height:5%;
}
.i9{
padding:10px;
}
.i10
background-color:#dddddd; font-size:1000px;
</style>
</head>
<body>
<div>
<input type="submit" value="送信" />
<input type="submit" value="送信" class="i2" />
<input type="submit" value="送信" class="i3" />
<input type="submit" value="グーグル検索" />
<input type="submit" value="google検索" />
<input type="submit" value="送信" class="i5" />
</div>

<div>
<input type="text" value="送信" />
<input type="text" value="送信" class="i7" />
<input type="text" value="送信" size="20" class="i8" />
<input type="text" value="送信" class="i9" />
<input type="text" value="送信" class="i10" />
</div>


</body>
</html>
タグ:CSS HTML utf-8 input

関連の話題を探す@人気ブログランキング

Googleの"お待ちください・・・"を

Gmailを使ったりするとき、画面右上のほうに、"お待ちください・・・"って出るじゃないですか。
JavaScriptでページ内を書き換える時に、3〜5秒処理に時間がかかるので、その間だけ"お待ちください・・・"と出るようにしたいわけです。

PHPのページだが新たにリクエストは送らずクライアント側だけで解決する

flameは使いたくない

よってwindow.open()系の操作はしたくない

document.getElementById(id).style.display = "block" ;
〜重い処理〜
document.getElementById(id).style.display = "none" ;

ブラウザに反映されるのは全て処理を読み終わってからなので
重い処理 → "block"  -即→  "none"

setTimeout("func();", 1000);
とか仕込んでもブラウザに反映されるのは全て処理を読み終わってからなので
重い処理 → "block"  -1秒→  "none"

document.getElementById(id).innerHTML = "お待ちください";
前述(略)

今ここ

そもそも、90×4個以上とかあるidのstyleを一気に書き換えるというデザイン設定がよくないのだろうか。しかし、サーバにリクエストを送らずに表示切替を行えるようにしたいのです。(行えるが重い)

ただいま検討中・・・

ちなみに利用先は・・・こちらのサイト。ぼちぼちGoogleで引っかかるようになりました。まだまだだな。

関連の話題を探す@人気ブログランキング

ヒューマンエラー?期待は期待です。

ソース
<?php
$a='<title>taitoru</title>';
echo preg_replace('/<(|[^\/])(.+?)>/','$1',$a);
?>
出力

さてこれは文字列中の最初のタグ内の文字を抽出する簡単なスクリプトなのですが、本題は別です。

いろいろいじっていて、コメントアウトさせた気でいたのです。
$a='<title>taitoru</title>';
// echo preg_replace('/<(|[^\/].+?>/','',$a);


そうしましたら、このような出力になりました。
/','',$a); ?>

こちらの場合は期待通り出力が無かったです。
<?php
$a='<title>taitoru</title>';
/* echo preg_replace('/<(|[^\/].+?>/','',$a); */
?>


でもまあ、
HTML文<?php //echo 'test'; ?>HTML文

こんな場で?>までコメントアウトされてたらいやですね

関連の話題を探す@人気ブログランキング

初心者のMySQL:よくあるエラー その2

勢いあまって投稿します。あまりにはまったので。

>ALTER TABLE テーブル名 以下いろいろ

これで既存のテーブルの変更や編集ができます。しかし今回あまりに情けないエラーを連発しました。
今回したかったことは、ただこれだけです。カラムの名前を変更する。型は変更しなくていい。ただ名前だけ変えたかったのです。

>ALTER TABLE テーブル名 CHANGE 変える前のカラム名 変える名前 ;

これはエラー。何回やってもエラーでいらいらしました。ただ名前変えたいだけなのに。頭にきたので、

>ALTER TABLE テーブル名 DROP 変える前のカラム名 ;
>ALTER TABLE テーブル名 ADD 変えたかったカラム名 型定義 ;

という非常識な方法で事実上カラムを変更しました。

正解は、

>ALTER TABLE テーブル名 CHANGE 変える前 変える名前 型定義 ;

でした。一言一句もらさずに型定義をしなおせば受け付けてもらえました。さもなくばエラーをはいて受け付けてもらえませんでした。でも、名前だけ変えたかったんです。

あまりに時間がかかったため、さびしい気持ちになりました。



ちなみに、こんなサイトでSQLを使ってみています。

関連の話題を探す@人気ブログランキング

初心者のMySQL:よくあるエラー その1

初級者にありがちなMYSQLのよくあるエラーを書き連ねていこうと思います。信じられないくらいありえない間違いに半日も時間を取られた日には精神衛生最悪になります。しかし私はおっちょこちょいだからよくあるのです。そんな経験をしないように(もうしてるかも?)少しは役に立つ記事が書ければと思います。ちなみに、こんなサイトでSQLを使ってみています。

まず、筆者の環境は debian etch+apache2+MySQL+PHP5 となっています。LAMPです。導入から運用開始までものすごく時間がかかったのは言うまでもありません。これは別の場所でまた。

初回は、インストールでのつまづきです。Windows版の説明をしているページは多いのですが(allabout等)、linuxでの導入解説はそんなに無かったと思います。
今回は、テスト用にWindows機に、本番向けにLinux機(debina etch)の二つに導入する際のTipsです。

まず、MYSQLのドキュメントの場所です。これはHTML等をまとめてローカルに保存できる大変便利なものとなっています。
http://dev.mysql.com/doc/
PDFやCHM形式もあります。また、日本語版もあります。これは大変うれしいです。

まずはWindows編です。Windows機や他のLinuxディストリビューションであれば上記サイトからソースやセットアップファイルをDLします。
まず、ここでありえないつまづきをしました。どこからダウンロードするんだ。という。
http://dev.mysql.com/downloads/
ここがダウンロードページの入り口です。Download » と書いてあるリンクをたどります。そうしますと、ダウンロードページに飛ぶのですが、windows、linuxなどタイプ別に分けられています。
ここで数点注意してほしいことが。
初回だとダウンロードボタンが表示されません。また、クッキーが効いていないとダウンロードボタンが表示されないようです。
pick a mirror というリンクをたどります。
Please take the time to let us know about you. Rest assured ・・・の文言があります。ユーザ登録的なことをしてくださいと言うようです。ダウンロードページにも日本語があれば登録しやすかったんですけどね。» No thanks, just take me to the downloads!
をクリックすると登録をスキップしてダウンロードすることができます。ただしこれはページの下のほうにスクロールしないと見えないので注意しましょう。ここまでに相当時間がかかりました・・・。まだデータベースの内容とは何も関係ありませんね(汗)ですが無事ダウンロードできてからはほとんど時間がかかりませんでした。

私の場合はコマンドラインから使用し、Linuxで使う場合と近い環境で使用するのが狙いですので、コマンドライン用のインターフェースをインストール時に使う用選びます。インストールはいたって簡単ですし、このメニューはいつでも選べるようです。ルートユーザの設定や常時起動させるかと言う質問もありますが、完全にローカルでのテスト用ですのでNOにしました。

PHPから使うことを狙いにインストールしましたのでまだ続きます。
MYSQLと連携する関数を使用するためにphp.iniのextension=php_mysql.dll
extension=php_mysqli.dll
行のコメントアウトをはずします。今回は mysqli 関数が使いたかったのでそちらだけはずしました。
次にパスを通します。windowsのシステムディレクトリに libmysql.dll または libmysqli.dll を コピーすれば動作します。コントロールパネルから”システム”のプロパティの”詳細”そして”環境変数”を開き、システム環境変数にPathと言う項目がありますのでダブルクォートで囲んだパスを入力してもOKです。これは、そのパスにシステムファイルがありますよ、ということです。これでwindows機上でPHPとMYSQLの連携が可能になりました。

では次にdebian編です。私ははこちらのが簡単でした。というのも、既にapache2 を運用していたからです。まずはパッケージの確認です。
stable で必要なものは見つかるでしょう。
aptitude から php5-mysql 、 mysql-server-5.0 を選択すれば依存関係から自動的にインストールされます。こういうところが非常に debian って楽だなと思います。探しにいかなくていい。(しかしこう考えるのは危険な思想かも)
ユーザ設定などは過去の記事にありますのであさってみてください。
そしてPHPから使用するためには
/etc/php5/apache2/php.ini
を修正する必要があります。ただし、
/etc/php5/apache2/conf.d に mysql.ini および mysqli.ini というファイルがありまして、extension=mysql.so となっています。内容からして前述ファイルがインクルードされているようでしたらOKです。ともかくPHPスクリプトから mysql(またはmysqli)関数を投げてみて動いていればOKです。
php.ini中で extension=mysql.so 行がコメントアウトされているとともに、apache2-php5経由のmysql利用に関して細かな設定が記述できるようになっています。これについてはまた。主にパフォーマンス関連の設定になりますので、大規模システムでなければ運用開始してから変更しても良いと思われます。

さて、同時に環境を構築したわけですが、どちらもWEB経由、つまりapache2とphp5からmysqlを利用するために、ブラウザから挙動を確認しながら作業を進めました。その際に、URL間違いによって設定が反映されないぜウガー、と大人気なくいらつきました。リモートを見ているつもりでURL欄にはlocalhostだったのです。はずかしい。しかしながらこれは時として盲点です。皆さんも注意してください。
タグ:SQL MySQL エラー

関連の話題を探す@人気ブログランキング

UTF-8うまく使えてますか?

UTF-8エンコードのファイルをphpでincludeしたら、ファイル始端にクエスチョンマークがついてきた。出力する際は読み込まれないのだが、ソースでは?と表示されている。ソースの文字コードを変えて表示すると文字化けするのでクエスチョンマークではない。

こんな事例。さて、UTF-8ファイルには二つ表記法がある。いわゆる、UTF-8Nというやつ。
http://ja.wikipedia.org/wiki/UTF-8
↑こちらを見れば解決するのだが、BOMありの方をUTF-8、なしの方をUTF-8Nと呼ぶ。
この、BOM(バイトオーダーマーク)をファイル途中でインクルードし、考慮せずに文字列処理などをすると不具合が起こるわけです。
ただ、HTMLファイル等でBOMを付加せずにいた場合、ブラウザ側でUTF-8と認識してくれない場合があるので、htmlファイルなど、初めに読み込むファイルではBOMをつけるのがベターな方法と言えよう。これはphpファイルにも該当するので、ともかくインクルード前の大元のファイルにはBOMを付けることを意識すると良いだろう。

関連の話題を探す@人気ブログランキング

Google
 
Powered by Seesaa