Hatena::Groupdaichan330

趣味には偏ってないだいちゃんの日記 このページをアンテナに追加 RSSフィード

2007-10-14

ふとした疑問

04:46 |  ふとした疑問 - 趣味には偏ってないだいちゃんの日記 を含むブックマーク はてなブックマーク -  ふとした疑問 - 趣味には偏ってないだいちゃんの日記  ふとした疑問 - 趣味には偏ってないだいちゃんの日記 のブックマークコメント

この辺りってd2→dに搭載された訳だけど、なら今のd2の意義って何?

本当に凹むorz

05:04 |  本当に凹むorz - 趣味には偏ってないだいちゃんの日記 を含むブックマーク はてなブックマーク -  本当に凹むorz - 趣味には偏ってないだいちゃんの日記  本当に凹むorz - 趣味には偏ってないだいちゃんの日記 のブックマークコメント

ブクマエントリで気の利いたコメントをスターの引用機能で残そうとしたのに、なぜかスターの引用機能が働かなくて、無駄に☆を付けてしまった時のアレさ加減。

☆削除機能について

14:41 |  ☆削除機能について - 趣味には偏ってないだいちゃんの日記 を含むブックマーク はてなブックマーク -  ☆削除機能について - 趣味には偏ってないだいちゃんの日記  ☆削除機能について - 趣味には偏ってないだいちゃんの日記 のブックマークコメント

導入

さきほど、はてなスターで自分でつけた☆を削除できる機能を追加しました。

☆を削除できる機能を追加しました - はてなスター日記

そんな訳ではてなスターリリースから3ヶ月越しでようやく実装された☆削除機能。

1Q持ち越したのははてなの4半期決算があったから…かどうかは知りませんが。

ともあれ、導入後1ヶ月の削除要望アイデアall却下を見てきてる自分にとっては、このまま削除しない方針で行くのかと思ってたので少々拍子抜けです。


JavaScript初心者の自分がちょっと実装を見てみる

そんな訳ですが、個人的には以下の部分が気になりました。

☆を削除するには、削除したい☆の上にマウスをかざしてしばらく待ってください。しばらくすると、確認画面が出て削除を行うことができます。

☆を削除できる機能を追加しました - はてなスター日記

「しばらく」ってのは具体的にどの位なんだ?

ということでこういう場合はHatenaStar.jsの実装を見るに限ります。


見てみると(deleteでソースを検索すると)、おそらくココというのは案外簡単に見つかりました。1610行目辺りから。

:
⇒  setTimer: function(e) {
        var self = this;
        if (this.deleteTimer) return;
        if (!this.name || !this.entry) return;
        if (!Hatena.Visitor) return;
        if (!Hatena.Visitor.RKS) return;
        this.deleteTimer = setTimeout(function() {
            self.deleteTimer = null;
            var uri = Hatena.Star.BaseURL + 'star.deletable.json?name='
                + self.name;
            new Ten.JSONP(uri, self, 'confirmDeletable');
⇒      }, 5000);
    },
    clearTimer: function() {
        if (this.deleteTimer) {
            clearTimeout(this.deleteTimer);
            this.deleteTimer = null;
        }
    },
    confirmDeletable: function(res) {
        if (res.result && confirm('Delete this star?')) {
            this.deleteStar();
        }
    },
    deleteStar: function() {
        var uri = Hatena.Star.BaseURL + 'star.delete.json?name='
            + this.name + '&uri=' + encodeURIComponent(this.entry.uri)
            + '&rks=' + Hatena.Visitor.RKS;
        if (this.quote) {
            uri += '&quote=' + encodeURIComponent(this.quote);
        }
        new Ten.JSONP(uri, this, 'receiveDeleteResult');
    },
    receiveDeleteResult: function(res) {
        if (res && res.result) {
            this.anchor.style.display = 'none';
        }
    },
:

あれだけイヤダイヤダ!とだだをこねられていた(?)割にはえらくシンプルな実装だというのが第一印象。まあHatenaStar.jsは一番表層だけなので、中の実装は手が込んでるのかもしれません。


さて、この実装を見るとsetTimer()の設定値が"5000"なので、おそらくですが「5秒」待てば(ブラウザの設定時間等で多少変動あり)、アラートウィンドウが開くようです。アラートメッセージはconfirmDeletableが呼んでいる模様。

それにしても「5秒」という明確な数値を既定してるにも関わらず「しばらく」と曖昧(3cm、そりゃぷにってことかい?ちょ!)な表現にしてるのはなぜでしょうね?日本人って結構この手の待たせるタイプってシビアじゃないかと思うんだけど、そう感じるのは自分だけなのかな?

はてなアイデア - ☆削除機能。「☆を削除するには、削除したい☆の上にマウスをかざしてしばらく待ってください。」と曖昧に言わず「?5秒程度待ってください。」と目安の時間を記載して欲しい。


導入したはいいんだけど

今まで削除機能が無かったから仕様としてOKになってた所が、削除機能ありになると途端に様相が変わってくる訳で。例えば、

等々。BlogsやStarsも見たけど、その辺りはちゃんと動作してるみたい。

まあはてなスターリリース当初もやれβだなんだと言われてたし、まず削除機能ありきで今後実装していくんだろうなぁとは思います。


そんな訳ですが

削除機能、個人的には最終的に過去1ヶ月間分だけ削除できるようにする方がいいんじゃないかなと思います。FriendsやFavoritesに関わるのは過去1ヶ月だけなので、それだけ☆削除の対処にすればいいんじゃないかと。

(元々のスターのコンセプトにエントリは流れていくものだとあったし)

とは言っても、現状導入したばっかりだし、暫くは全期間削除できるようにしておいた方が都合が良さそうですが。