Поскольку вы используете asp.net, имеет смысл выполнить проверку на стороне сервера, поскольку именно там вы решите добавить ссылку на файл javascript. Из вашего .ascx файла вы можете зарегистрироваться со следующим:
this.Page.ClientScript.RegisterClientScriptInclude("GlobalUnqiueKey", UrlOfJavascriptFile);
... со своей страницы вы просто вызываете объект ClientScript напрямую:
ClientScript.RegisterClientScriptInclude("GlobalUnqiueKey", UrlOfJavascriptFile);
'GlobalUniqueKey' может быть любой строкой (для этого я тоже использую URL файла javascript)
Если вы попытаетесь зарегистрировать скрипт с той же ключевой строкой, он ничего не сделает. Поэтому, если вы называете это на своей странице, в вашем контроле или где-либо еще, у вас будет только одна ссылка на вашей странице. Преимущество этого состоит в том, что вы можете иметь несколько экземпляров элемента управления на странице, и хотя они все пытаются зарегистрировать один и тот же сценарий, это выполняется только один раз. И никому из них не нужно беспокоиться о том, что скрипт уже зарегистрирован.
Существует метод IsClientScriptIncludeRegistered (stringkey), который вы можете использовать, чтобы увидеть, был ли скрипт уже включен под этим ключом, но кажется довольно избыточным делать эту проверку перед регистрацией, так как множественные попытки регистрации не выдают исключения вызвать любые другие ошибки.
Выполнение проверки на стороне клиента означает, что при условии, что браузер кэширует несколько ссылок на javascript (их может и не быть), у вас все еще есть несколько тегов, и каждый из них загружается, что приводит к запуску некоторого JavaScript. Если у вас есть 20 экземпляров вашего контроля на странице, вы можете получить серьезные проблемы.