Когда я должен пользоваться библиотекой платформы JavaScript?

Это возможно! Я сделал решение (которое вы можете запустить здесь ), которое расширяет пакет параметров типов исключений в серию рекурсивных вызовов функций, где каждая функция пытается перехватить один тип исключения. Затем самый внутренний рекурсивный вызов вызывает обратный вызов.

namespace detail {    
    template
    void catcher(std::function& clb){
        try {
            clb(); // invoke the callback directly
        } catch (const First& e){
            // TODO: handle error as needed
            std::cout << "Caught an exception with type \"" << typeid(e).name();
            std::cout << "\" and message \"" << e.what() << "\"\n";
        }
    }

    template
    void catcher(std::function& clb){
        try {
            catcher(clb); // invoke the callback inside of other handlers
        } catch (const First& e){
            // TODO: handle error as needed
            std::cout << "Caught an exception with type \"" << typeid(e).name();
            std::cout << "\" and message \"" << e.what() << "\"\n";
        }
    }
}

template
class CustomExceptionHandler
{
public:
    CustomExceptionHandler(std::function clb): clb_(std::move(clb)){}

    void ExecuteCallback()
    {
        detail::catcher(clb_);
    }

private:
    std::function clb_;
};

int main(){

    std::function clb = [](){
        std::cout << "I'm gonna barf!\n";
        throw std::out_of_range("Yuck");
        //throw std::overflow_error("Ewww");
    };

    CustomExceptionHandler handler(clb);
    handler.ExecuteCallback();

    return 0;
}

Вывод:

I'm gonna barf!

Caught an exception with type "St12out_of_range" and message "Yuck"

blockquote>

9
задан alvatar 14 May 2009 в 14:19
поделиться

4 ответа

В SO вы найдете много людей (включая меня), которые выступают за использование jQuery (в частности). Для меня это все, чем должен быть фреймворк: маленький, легкий, расширяемый, компактный, но мощный и краткий синтаксис, и он решает некоторые довольно серьезные проблемы. Честно говоря, мне было бы трудно представить себе проект, в котором я бы не стал его использовать (или другой фреймворк).

Причина его использования - решить проблемы совместимости браузеров. Рассмотрим мой ответ на javascript, чтобы получить абзац выделенного текста на веб-странице :

 function getSelectedParagraphText () {
 var userSelection;
 if (window.getSelection) {
 selection = window.getSelection ();
 } else if (document.selection) {
 selection = document.selection.createRange ();
 }
 var parent = selection.anchorNode;
 while (parent! = null && parent.localName! = "P") {
 parent = parent.parentNode;
 }
 if (parent == null) {
 возвращение "";
 } else {
вернуть parent.innerText || parent.textContent;
 }
}

Если вы знакомы с Javascript, многое из этого должно быть вам знакомо: такие вещи, как проверка на innerText или textContent (Firefox 1.5) и так далее. Чистый Javascript изобилует подобными вещами. Теперь рассмотрим решение jQuery:

function getSelectedParagraphText() {
  var userSelection;
  if (window.getSelection) {
      selection = window.getSelection();
  } else if (document.selection) {
      selection = document.selection.createRange();
  }
  var parent = selection.anchorNode;
  var paras = $(parent).parents("p")
  return paras.length == 0 ? "" : paras.text();
}

Там, где действительно выделяется jQuery, так это с AJAX. Там есть фрагменты кода JavaScript, чтобы найти правильный объект для создания экземпляра (XMLHttpRequest или эквивалент) для выполнения запроса AJAX. jQuery позаботится обо всем этом за вас.

Все это менее чем за 20 КБ для основного файла jQuery Javascript. Для меня это просто необходимо.

11
ответ дан 4 December 2019 в 07:35
поделиться

Я бы начал прямо сейчас. Такие библиотеки, как jQuery и prototype, не только изолируют вас от различий между браузерами, но также предоставляют вам сокращенную форму для передачи ваших идей другим программистам.

11
ответ дан 4 December 2019 в 07:35
поделиться

Всякий раз, когда писать javascript - это не ваше дело .

Библиотеки JS, не считая помощников и ярлыков, также позаботятся о угловых случаях, несовместимости браузеров и причудах, и передовой опыт. Лучше потратить время на разработку своего приложения и вернуться к родному JS только в случае необходимости.

5
ответ дан 4 December 2019 в 07:35
поделиться

Сделка с jquery - это подход к созданию javascript, но с меньшим объемом работы и более легким общением с другими, поэтому я бы сказал Да

Подумайте об этом так, вы бы предпочли написать статью в Microsoft Word или блокноте

2
ответ дан 4 December 2019 в 07:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: