Как Определить дублирующиеся Функции JavaScript, которые включают в Страницу Asp.net

У меня есть приложение, которые используют некоторые функции JavaScript,

Поскольку все javascripts включают в Masterpage, большинство из них, которое приезжает, withpage не необходимы, и некоторые из тех повторяются (причина, используемая в некотором другом файле JS.)

Таким образом, я хочу проверить, существует ли способ определить дублирующиеся функции и удалить их?

5
задан Nasser Hadjloo 20 February 2010 в 11:20
поделиться

4 ответа

Вы можете проверить, существует ли функция, при объявлении функции, но вам придется изменить способ ее работы.

вместо

function foo(){ something }

do

if(window.foo===undefined){
window.foo=function(){ something }
}

и вы все еще можете вызвать ее

foo();

Все это можно добавить в ваши файлы с помощью find&replace с использованием regexp, так что я считаю это легким :)

4
ответ дан 14 December 2019 в 13:34
поделиться

К сожалению, если они не названы одинаково или не ссылаются на одни и те же классы или идентификаторы, это крайне сложно. Но если это дубликат, то он должен подпадать под одно из этих соответствий. Я говорю это потому, что после крупного преобразования нашего проекта я вернулся и очистил весь javascript в красивые пространства имен и столкнулся с той же проблемой.

Этот ответ будет отстойным, и я прошу прощения: Ctrl+Shift+F. Ищите те же имена функций или те же классы/идентификаторы, если вы думаете, что у функции другое имя/одна и та же функция.

Я нахожу поиск по имени функции, #id и .class наиболее продуктивным. Также исключите из поиска файлы .cs. Это позволит минимизировать время, прошедшее с момента предшествующих # и . будут появляться только при использовании в jQuery, но это все равно очень ручной процесс.

Надеюсь, у кого-то есть лучшее решение, и если оно найдется, я буду чувствовать себя идиотом, но я честно не смог найти лучшего способа сделать это в VS 2008.

2
ответ дан 14 December 2019 в 13:34
поделиться

Если функции из двух скриптов имеют одинаковые имена или являются именованными методами объекта, первая функция будет заменена второй при интерпретации второго скрипта.

У вас не будет двух одинаковых функций, "занимающих место", а только одна.

0
ответ дан 14 December 2019 в 13:34
поделиться

Из вопроса неясно, используете ли вы Webforms или MVC. В любом случае вы хотите использовать какой-то менеджер сценариев.

Для MVC я обнаружил, что это исследование почти такой же проблемы: Простой ScriptManager для ASP.NET MVC

Для веб-форм, хм, не уверен, мне нужно снова сделать домашнее задание

{{1 }}
0
ответ дан 14 December 2019 в 13:34
поделиться
Другие вопросы по тегам:

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