2012-03-24 9 views
3

私はC#ASP.NET MVC 3という私のサイトでOpenIDとOAuthを実装しています。私はバックエンドの場合はDotNetOpenAuth、フロントエンドの場合はopenid-selectorをベースにしています。javascriptコードにはDOMの知識はどれくらいありますか?

私はopenid-selectorを言っていますが、それは私が(StackOverflow'simplementationjsbeautifierの助けを借りて)それを適応始めた箱の外にはOAuthをサポートしていません。

私はこのようなDOMを処理するコードをたくさん見つけ

:私に

function highlight(boxId) { 
    // remove previous highlight. 
    var highlight = $('#openid_highlight'); 
    if (highlight) { 
     highlight.replaceWith($('#openid_highlight a')[0]); 
    } 
    // add new highlight. 
    $('.' + boxId).wrap('<div id="openid_highlight"></div>'); 
}; 

または

function useInputBox(provider) { 
    var area = $('#openid_input_area'); 
    var id = 'openid_username'; 
    var html = ''; 
    var value = ''; 
    var style = ''; 
    var label = provider.label; 
    if (label) { 
     html = '<p>' + label + '</p>'; 
    } 
    if (provider.name == 'OpenID') { 
     id = this.input_id; 
     value = 'http://'; 
     style = 'background: #FFF url(' + spritePath + ') no-repeat scroll 0 50%; padding-left:18px;'; 
    } 
    html += '<input id="' + id + '" type="text" style="' + style + '" name="' + id + '" value="' + value + '" />' 
     + '<input id="openid_submit" type="submit" value="' + this.signin_text + '"/>'; 
    area.empty(); 
    area.append(html); 
    $('#' + id).focus(); 
}; 

両方の音、彼らは(あまりにも多くのDOMについてはあまり想定しているようにids、またはDOMの現在の状態)。

javascriptをDOMに緊密に結合しても問題ありませんか?このようなコードを避け、より侵入の少ないアプローチをとる最善の方法は何ですか?

openid.init('openid_identifier', '', 'http://cdn.sstatic.net/Img/openid/openid-logos.png?v=8', true); 

そんなにスクリプトファイルにすでに仮定してあります。

は、私が何を私にperplexesするコールであると思います。

答えて

1

これは悪いことだと思うので、私は主張したいと思います。

JavascriptのUI開発には、デザインパターンが非常に不足しています。私は、多くの人々がhtmlから直接、いくつかのjQueryを学ぶこと、Webアプリケーションを書くことに至ったと推測しています。

これをよりうまく処理するシンプルなシステム(私が見つける)はbackbone.jsです。ソースコードは見やすく、ビジネスロジックに関する懸念からビューの問題をきれいに分離しています。 (データバインディング別名)よりMVVMアプローチknockoutjsためのまた

0

オプションです。彼らはまたあなたを始めさせるために素敵なinteractive tutorialを持っています。

関連する問題