Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.02.2010, 14:08
Новичок на форуме
Отправить личное сообщение для Slimy Посмотреть профиль Найти все сообщения от Slimy
 
Регистрация: 18.02.2010
Сообщений: 1

Out of memory in IE
В общем я совсем новичек в JS и решил попробовать свои силы в том что бы прикрутить к страничке загрузку контента в div без перезагрузки страницы. Погуглив нашел пример прикрутил под свои нужды(местами криво знаю, но попытки переделать приводят к тому, что не работает вовсе) скрипт работает в chrome и ff и не падает однако в IE он позволяет нажать только десять ссылок потом получаю ошибку Out of memory. Причем гдето ссылки восьмой начинает все жутко тормозить. КАк ее победить куда копать?
<script type="text/javascript" src="gallery/js/jquery.js"></script> <script type="text/javascript">
      var page ="about.html";
      var flag = true;
       function loadpage(div_id){
            $(document).find('a').click(
                                function(){
        //проверяем, не является ли наша ссылка внешней ссылкой.
        //это можно сделать и другим способом, средствами самого JQ,
        //но лично мне удобнее так.
        if ($(this).attr("href").indexOf("http://") == -1) {
        //проверяем, не присвоен ли ссылке класс, в данном случае "link_no_jq"

        if  ($(this).attr("class") == "menu_language") {
            var language_dir = "";

            if($(this).attr("id") == "rus")
            {
                $language_dir = "rus";
                document.getElementById("rus").innerHTML = "<b>rus</b>";
                document.getElementById("est").innerHTML = "est";

                document.getElementById("about").innerHTML = "О студии";
                document.getElementById("styles").innerHTML = "Стили";
                document.getElementById("schedule").innerHTML = "Расписание";
                document.getElementById("services").innerHTML = "Услуги";
                document.getElementById("gallery").innerHTML = "Галерея";
                document.getElementById("contacts").innerHTML = "Контакты";

            }

            if($(this).attr("id") == "est")
            {
                var language_dir = "est";
                document.getElementById("est").innerHTML = "<b>est</b>";
                document.getElementById("rus").innerHTML = "rus";

                document.getElementById("about").innerHTML = "Stuudio";
                document.getElementById("styles").innerHTML = "Stiilid";
                document.getElementById("schedule").innerHTML = "Ajakava";
                document.getElementById("services").innerHTML = "Teenused";
                document.getElementById("gallery").innerHTML = "Galerii";
                document.getElementById("contacts").innerHTML = "Kontakt";
            }

            document.getElementById("about").href = "content/"+language_dir+"/about.html";
            document.getElementById("styles").href = "content/"+language_dir+"/styles.html";
            document.getElementById("schedule").href = "content/"+language_dir+"/schedule.html";
            document.getElementById("services").href = "content/"+language_dir+"/services.html";
            document.getElementById("contacts").href = "content/"+language_dir+"/contacts.html";
           // $page="about.html";
            if(page == "gallery.html")
              $current_page= "content/"+page;
            else
               $current_page="content/"+language_dir+"/"+page;

        //прячем наш див
        div_id.hide('fast',
          function loadingDiv(){
            //очищаем содержимое нашего дива
            div_id.empty();
            //показываем див с анимацией
            $("#loading_animation").show();
            //загружаем страницу, указанную в атрибуте href
            //
            if(flag)
            { flag = false;
            $.get($current_page,{},
              function(response){
              //прячем див с анимацией
                $("#loading_animation").hide();
                //всовываем содержимое страницы page2.html в наш див
                //и показываем её, используя анимацию fadeIn
                div_id.empty();
                div_id.append(response).fadeIn('fast');
                flag = true;
                //в конце не забываем вызвать нашу функцию
                loadpage(div_id);

              }
            )
            }
          }
        );


        }



        if	($(this).attr("class") == "menu_lnk") {
        var url = $(this).attr('href');
         page = $(this).attr('id')+".html";
        //прячем наш див
        div_id.hide('slow',
          function loadingDiv(){
            //очищаем содержимое нашего дива
            div_id.empty();
            //показываем див с анимацией
            $("#loading_animation").show();
            //загружаем страницу, указанную в атрибуте href
            //
            $.get(url,{},
              function(response){
              //прячем див с анимацией
                $("#loading_animation").hide();
                //всовываем содержимое страницы page2.html в наш див
                //и показываем её, используя анимацию fadeIn
                div_id.empty();
                div_id.append(response).fadeIn('fast');
                //в конце не забываем вызвать нашу функцию
                loadpage(div_id);
              }
            )
          }
        );
        return false;
        }


        }
        }
        );
        }


        var first_boot = true;
        $(document).ready(function(){
        //вызываем функцию после того, как дум готов, передав в качестве
        //параметра id нашего дива.
        var div_id = $('#load_page');
        if(first_boot)
        {
          first_boot=false;
          $.get("content/rus/about.html",{},
              function(response){
                div_id.append(response).fadeIn('slow');
              })}
        loadpage(div_id);
        });


    </script>

Последний раз редактировалось Slimy, 18.02.2010 в 14:21.
Ответить с цитированием
Ответ



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

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