Java, Groovy on Grails, PHP, Kohana

Блог о программировании на Java, Groovy on Grails, PHP, kohana

Currently Viewing Posts Tagged javascript

Include to Grails gsp view to javascript variable other gsp view content

I have some view (“basicView.gsp”) and want to pass other view content (“_someTemplate.gsp”) to this view to javascript variable (“template”).

basicView.gsp:

<html>
<head>
...
</head>
<body>
...
<script>
var template = '${raw(include(view:"myTemplates/_someTemplate.gsp").replaceAll('\n',''))}';
</script>
</body>
</html>

_someTemplate.gsp:

<div>
<h1>Some header</h1>
<p>Lorem ipsum dolor sit...</p>
</div>

Resulted html:

<html>
<head>
...
</head>
<body>
...
<script>
var template = '<div><h1>Some header</h1><p>Lorem ipsum dolor sit...</p></div>';
</script>
</body>
</html>

Заметка о jQuery (ajax, post)

В своем проекте использую jQuery для работы с элементами форм и передачи запросов в БД при помощи $.post().
Браузеры по разному обрабатывают и выполняют код js скриптов.
В частности firefox 6 и выше выполняет следующий код:

function chagedata (id) 
{
  $.post('/order/changedata', {
        'id': id
        });
  $.ajax({  
            url: "/shop/cart.html",  
            cache: false,
            success: function(html){  
                $("#cart").html(html);  
         });
}

последовательно, т.е. сначала отрабатывает post, после этого ajax получает данные и мы выводим их на экран.
Другие браузеры, к примеру, Opera 11 выполняет скрипты независимо от их порядка, а по мере поступления отклика от них. В данном случае, post еще не записал данные в БД, а ajax уже вывел html код…
Для того, чтобы все происходило в соответствии с нашим планом, необходимо записать код следующим образом:

$.post('/order/changedata', {
        'id': id
    })
    .done(function() {
        $.ajax({  
            url: "/shop/cart.html",  
            cache: false,
            success: function(html){  
                $("#cart").html(html);  
            } 
        });

т.е. пока не выполнится post, ajax не станет выводить данные.

  • Recent Posts