Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Удаление содержимого тега script (https://javascript.ru/forum/events/46818-udalenie-soderzhimogo-tega-script.html)

hilius 25.04.2014 12:50

Удаление содержимого тега script
 
Здравствуйте! Есть такая проблема. Нужно удалить тег script со всем его содержимым.

После удаления объекта из DOM, с помощью removeChild, созданные в этом теге переменные и функции функционируют и активны.

Конечно переменные можно грохнуть с помощью delete. И все же функции похоже остаются.

Есть-ли возможность грохнуть все полностью под чистую?

dmitriymar 25.04.2014 13:05

Цитата:

Сообщение от hilius
Конечно переменные можно грохнуть с помощью delete

да ща, некоторые браузеры в разных системах, позволяют удалять по прежнему только свойства и методы, а не глобальные

Все функции и переменные сделать свойствами и методами объекта и обнулить его

А вообще зачем это всё, если можно изначально правильно строить алгоритм работы?

hilius 25.04.2014 14:43

Цитата:

Сообщение от dmitriymar (Сообщение 309201)
да ща, некоторые браузеры в разных системах, позволяют удалять по прежнему только свойства и методы, а не глобальные

Все функции и переменные сделать свойствами и методами объекта и обнулить его

А вообще зачем это всё, если можно изначально правильно строить алгоритм работы?

В реальности я хочу очистить скрипт после его отработки или не отработки, использованный в рамках технологии JSONP. Проблема в том что существует некоторая вероятность, что он не загрузится полностью и некоторые браузеры не дают знать об этом (на сколь я знаю). Если код скрипта будет не в порядке, я полагаю очистка даже методов и свойств будет не возможна?! Конечно можно положится на сборщик мусора, но можно ли быть уверенным в нем?! Но видимо только и это остается)?!

Aetae 25.04.2014 15:45

Если он будет не загружен полностью - это явный косяк кривого сервера. Он должен либо грузить, либо прерывать с той или иной ошибкой. При внезапном обрыве коннекта например "половинчатый" скрипт использован не будет.
В любом случае, при передаче через jsonp, в каком бы месте загрузка не остановилась - будет синтаксическая ошибка, так как нет закрывающей скобки вызова колбэк функции.

hilius 25.04.2014 16:19

Цитата:

Сообщение от Aetae (Сообщение 309240)
Если он будет не загружен полностью - это явный косяк кривого сервера. Он должен либо грузить, либо прерывать с той или иной ошибкой. При внезапном обрыве коннекта например "половинчатый" скрипт использован не будет.
В любом случае, при передаче через jsonp, в каком бы месте загрузка не остановилась - будет синтаксическая ошибка, так как нет закрывающей скобки вызова колбэк функции.

дело не всегда в кривом сервере. Коллизии в сети никто не отменял и транспортный протокол не всегда с ними справляется. Тупо может инет обрубиться))) вообщем путь от клиента до сервера часто огромен и электроны путешествиники могут "пойти на лево")

Vlasenko Fedor 25.04.2014 22:06

тег script - удалить можно - эффекта не даст
то что лежит внутри тега - исполнилось и лежит в памяти
вы можете обернуть содержимое тега script в именованную функцию
а далее ее обнулить
<script>
  var myfunction = function () {
      alert("myfunction");
    };
</script>
<script>
  myfunction();
  var myfunction = function () {};
  myfunction(); //здесь уже ничего не увидете, функция переопределена
</script>


Часовой пояс GMT +3, время: 07:20.