JQuery: сначала и: eq (0) селекторы, функционально эквивалентные?

На самом деле существует различие между

throw new CustomException(ex);

и

throw;

, второе сохранит данные стека.

, Но иногда Вы хотите сделать Исключение более "дружественным" по отношению к Вашему домену приложения, вместо того, чтобы позволить DatabaseException достигнуть Вашего GUI, Вы повысите свое пользовательское исключение, которое содержит исходное исключение.

, Например:

try
{

}
catch (SqlException ex)
{
    switch  (ex.Number) {
        case 17:
        case 4060:
        case 18456:
           throw new InvalidDatabaseConnectionException("The database does not exists or cannot be reached using the supplied connection settings.", ex);
        case 547:
            throw new CouldNotDeleteException("There is a another object still using this object, therefore it cannot be deleted.", ex);
        default:
            throw new UnexpectedDatabaseErrorException("There was an unexpected error from the database.", ex);
    } 
}
16
задан BoltClock 8 November 2011 в 02:31
поделиться

2 ответа

Используйте preg _ grep () :

$matches = preg_grep('/al/', $streetNames);

Примечание: Этот метод, подобный вашему, будет грубым силовым поиском. Если вы ищете огромный список имен (сотни тысяч) или ищете огромное количество раз, то вам может понадобиться что-то лучшее. Однако для небольших наборов данных это нормально.

-121--4617323-

Пакеты Java не вложены, они плоские. Любое кажущееся вложение - не более чем соглашение об именовании.

Например, пакет com.company.project.db не имеет никакого отношения к com.company.project или com.company.project.db.x . Код в com.company.project.db не имеет большего доступа к коду в com.company.project.db.x , чем код в a.b.c .

-121--1212847-

2018: Да, : первый и : eq (0) возвращают тот же результат, хотя разница в производительности будет незначительной и, возможно, даже тривиальной по 2018.

2010: Хороший вопрос и великий пост. Я проверил это некоторое время назад и не мог вспомнить точный результат. Я очень рад, что нашел это, потому что это именно то, что я искал.

Я бы предположил, что причина : сначала и : eq (0) , будучи гораздо медленнее, скорее всего, связана с производительностью синтаксического анализа. Отсутствие этих параметров позволяет ядру jQuery использовать собственные функции getElemiveByTagName и getElemiveByClassName .

Никаких сюрпризов i.t.o. элемент DOM является самым быстрым в доступе. Перенос элемента DOM с jQuery в цикл for не обязательно окажет неблагоприятное влияние на производительность, поскольку jQuery использует свойство expando для кэширования.

Однако было бы интересно посмотреть, как get (0) сравнивает с доступом к элементу DOM и как его обертка jQuery соотносится с eq (0) и остальными результатами.

7
ответ дан 30 November 2019 в 21:29
поделиться

Да, они эквивалентны.

Нет, вряд ли они будут существенно отличаться (все остальное - это микрооптимизация).

6
ответ дан 30 November 2019 в 21:29
поделиться
Другие вопросы по тегам:

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