LINUX.ORG.RU

[javascript] меня терзают смутные сомнения


0

3
postComment = function(){
    var form = $(this)
    form.find("input[type=submit]").attr('disabled', 'diabled')
    var comments = $('div.comments#'+form.attr('id'))
    var array = form.serializeArray()
    var postData = {}
    for (i in array) {
        postData[array[i].name] = array[i].value
    }
    postData['comment'] = tinyMCE.activeEditor.getContent()
    progress.show()
    $.post(form.attr("action"), postData,
        function(result) {
            progress.hide()
            form.find("input[type=submit]").removeAttr('disabled')
            if (result.result == 'OK') {
                tinyMCE.activeEditor.setContent('')
                pollForComments($([comments]), false)
            } else {
                handleError(result['message'], $('.messages'))
            }
            tinyMCE.activeEditor.focus()
        },
        "json"
    )
    return false
}
$("form.comment_form").submit(postComment)

function pollForComments(containers, doitagain) {
    containers.each(
        function(container){
            var container = $(containers[container])
            var timeout = container.data('timeout')
            var name = container.data('name')
            var id = container.data('id')
            var after = container.find('div.comment').first().attr('id')
            var type = container.data('type')
            var data = {
                method: 'poll_for_comments',
                name: name,
                id: id,
                after: after,
                type: type,
                }
            $.getJSON('/api/', data,
                function(result) {
                    if (result['result'] == 'OK') {
                        if (result['comments']) {
                            var newComments = result['comments']
                            $.each(newComments, function(comment){
                                var comment = $(newComments[comment]).hide()
                                comment.prependTo(container).animate({ height: 'toggle', opacity: 'toggle' }, 'slow')
                            })
                        }
                        if (doitagain) {
                            setTimeout(pollForComments, timeout, containers, true)
                        }
                    } else {
                        handleError(result['message'], container)
                    }
                }
            )
        }
    )
}
pollForComments($("div.comments"), true)

за такой код никто котят не убивает? мне как-то ссыкотно.


Что именно тебя не устраивает. Сходу ничего такого необычного не увидел.

anonymous ()

Эту портянку можно оптимизировать в нескольких местах, но что тут такого уж прямо котятоубивательного?

proud_anon ★★★★★ ()
Ответ на: комментарий от proud_anon

я спрашиваю только потому, что я не знаю как писать «правильно и хорошо». если на первый взгляд код не выглядит отвратительным, то наверное мне можно успокоиться. оптимизировать я догадываюсь где и что.

мне просто нужно было подтверждение, что так оформлять/писать код вообще годно. после питона javascript не нравиться именно своей неконкретностью.

fuxter ()

я бы посоветовал ставить точку с запятой после statement'ов
и еще поправить табуляцию у var data

anonymous ()
Ответ на: комментарий от fuxter

>мне просто нужно было подтверждение, что так оформлять/писать код вообще годно
В этом я не уверен, что так оформлять годно. В частности, точку с запятой лучше в JS всегда ставить, а тут нигде не стоит. Кроме того, лучше закрывающую скобку ставить так:

myobj = {
   say: "hello",
   name: "Inigo Montoya"
}
А не так:
myobj = {
   str: "hello",
   name: "Inigo Montoya"
   }
Может, еще есть чего-то. Но не видно ничего прямо уж отвратительного.

proud_anon ★★★★★ ()
Ответ на: комментарий от anonymous

в этом проекте уже так и буду писать. мешать стили вредно. в следующем буду придерживаться стиля. начинал писать код используя «неправильные» статьи и примеры.

fuxter ()
Ответ на: комментарий от fuxter

>и главное работает =) проверял.
А почему бы ему не работать? Там проверяется тольо истина/ложь. И «diabled» и «disabled» - непустые строки, значит, истина.

proud_anon ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.