Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 26.01.2014, 10:38
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от danik.js Посмотреть сообщение
Я вобще как-то сомневаюсь что код скрипта отработает без ошибки. После окончания парсинга документа скрипты исполняются асинхронно, так что нельзя взять просто так и сразу после добавления скрипта вызвать из него функцию - файл попросту не успеет к этому моменту загрузиться или исполниться.
думаешь, он в оперативную память не залезет?
Ответить с цитированием
  #12 (permalink)  
Старый 26.01.2014, 11:19
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

melky я не понимаю к чему ты клонишь. Впрочем я оказался не прав: даже во время парсинга скрипт исполнится асинхронно:
<script>
    var script = document.createElement('script');
    script.src = 'data:application/javascript,function%09fn(){alert("ok")}';
    document.head.appendChild(script);
    fn();
</script>


<script>
document.addEventListener('DOMContentLoaded', function(){
    var script = document.createElement('script');
    script.src = 'data:application/javascript,function%09fn(){alert("ok")}';
    document.head.appendChild(script);
    fn();
});
</script>
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #13 (permalink)  
Старый 26.01.2014, 11:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

danik.js,
интересно что должны продемонстрировать примеры, когда нажмёшь кнопку посмотреть. куда смотреть чего ждать?
Ответить с цитированием
  #14 (permalink)  
Старый 26.01.2014, 12:38
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от рони
куда смотреть чего ждать?
Консоль открой. Увидишь ошибку что функция fn не определена.

Синхронно скрипт можно вставить через document.write() во время парсинга.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #15 (permalink)  
Старый 26.01.2014, 12:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

danik.js,
а так? или это не про то?
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
</head>

<body>
<script>
document.addEventListener('DOMContentLoaded', function(){
    var script = document.createElement('script');
    script.src = 'data:application/javascript,function%09fn(){alert("ok")}';
    document.head.appendChild(script);
    window.setTimeout('fn()', 0)
    //fn();
});
</script>

</body>

</html>
Ответить с цитированием
  #16 (permalink)  
Старый 26.01.2014, 13:06
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

какой смысл удаять тег если скрипт будет все равно в памяти?
можете перегрузить обернув все в фунцию, но все эти действия похожи на извращенческие, с неправильной архитектурой и порядком действий
Ответить с цитированием
  #17 (permalink)  
Старый 26.01.2014, 13:27
Аспирант
Отправить личное сообщение для Danxil Посмотреть профиль Найти все сообщения от Danxil
 
Регистрация: 08.11.2013
Сообщений: 37

Сообщение от Poznakomlus Посмотреть сообщение
какой смысл удаять тег если скрипт будет все равно в памяти?
можете перегрузить обернув все в фунцию, но все эти действия похожи на извращенческие, с неправильной архитектурой и порядком действий
Т.е. нормально, если скрипт после выполнения так и останется висеть на странице ?

Так он и обернут в функцию
<script>
        (function($)
        {
            $(document).ready(function()
            {
                if (!$(document).bxSlider)
                {
                    var script = document.createElement("script");
                         
                    script.type = "text/javascript";
                    script.src = "<?php echo JURI::root()?>modules/mod_ext_jshopping_slider_products/assets/js/jquery.bxSlider.min.js";
                         
                    $("head").append(script);
                }
                $("#slider__list_<?php echo $id_sfx; ?>").bxSlider();
            });
        })(jQuery)
</script>

Последний раз редактировалось Danxil, 26.01.2014 в 13:29.
Ответить с цитированием
  #18 (permalink)  
Старый 26.01.2014, 13:33
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Сообщение от Danxil
Т.е. нормально, если скрипт после выполнения так и останется висеть на странице
Что значит висеть на странице?
Всегда выносите js код в отдельные файлы, не засоряйте html разметку страницы
Ответить с цитированием
  #19 (permalink)  
Старый 26.01.2014, 13:58
Аспирант
Отправить личное сообщение для Danxil Посмотреть профиль Найти все сообщения от Danxil
 
Регистрация: 08.11.2013
Сообщений: 37

Сообщение от Poznakomlus Посмотреть сообщение
Что значит висеть на странице?
Всегда выносите js код в отдельные файлы, не засоряйте html разметку страницы
Дело в том, что в самом скрипте я использую пхп, в примере выше видно. Т.е. если подключать файл, то нужно подключать script.php, а не script.js
соответсвенно из этого пхп-файла будет в любом случае на страницу вставлятся тег script

Последний раз редактировалось Danxil, 26.01.2014 в 14:03.
Ответить с цитированием
  #20 (permalink)  
Старый 26.01.2014, 14:37
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Сообщение от Danxil
Дело в том, что в самом скрипте я использую пхп, в примере выше видно
что мешает прописать значения php переменных вручную
и пример с <script src="/script.php" type="text/javascript"></script> также имеет право на жизнь
где код script.php
<?php
header('Content-type: text/javascript; charset: UTF-8');
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 2592000) . ' GMT');
header("Content-Encoding: gzip"); //сжатие если не работает удалить строку
header('Last-Modified: '.gmdate('D, d M Y H:i:s',filemtime(__FILE__)).' GMT');
?>
//здесь уже js
alert('Work');
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как удалить коммит github Maxmaxmaximus6 Оффтопик 59 01.01.2014 19:42
Освобождение памяти или как удалить this? Greck Общие вопросы Javascript 16 14.12.2011 11:29
Как удалить из набора элементы у которых дисплей нан KamalovRadik jQuery 3 30.10.2011 16:11
Как удалить таблицу созданную в JS? konstantinopol Общие вопросы Javascript 9 10.09.2011 10:55
как найти и удалить массив из массива? FRIE Общие вопросы Javascript 8 14.03.2011 15:48