в приложении Grails 3, что такое Spinner и нужно ли мне application.js? - PullRequest
0 голосов
/ 06 апреля 2019

Grails 3 поставляется с начальной загрузкой 3. Я хочу создать свой собственный макет main.gsp на основе Grails 4, то есть заменить основной файл main.gsp на что-то вроде этого:

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    <asset:link rel="icon" href="favicon.ico" type="image/x-ico" />
    <title><g:layoutTitle default="DAM"/></title>
    <g:layoutHead/>
</head>
<body>
<g:layoutBody/>
<div class="footer" role="contentinfo"></div>
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
</body>
</html>

В нижней частипо умолчанию main.gsp таков:

<div id="spinner" class="spinner" style="display:none;">
    <g:message code="spinner.alt" default="Loading&hellip;"/>
</div>

<asset:javascript src="application.js"/>

Вопрос в том, стоит ли включать их?За все годы использования Grails я никогда не видел, чтобы в интерфейсе пользователя отображался счетчик, поэтому я не уверен, работает ли он на самом деле?

Я предполагаю, что не хочу application.js?

Также не уверен, для чего это нужно, так как он не имеет содержания:

<div class="footer" role="contentinfo"></div>

1 Ответ

1 голос
/ 07 апреля 2019

Вопрос в том, стоит ли включать их?

Только если вы когда-нибудь захотите отобразить счетчик.Значение по умолчанию main.css определяет стиль для счетчика:

.spinner {
    background: url(../images/spinner.gif) 50% 50% no-repeat transparent;
    height: 16px;
    width: 16px;
    padding: 0.5em;
    position: absolute;
    right: 0;
    top: 0;
    text-indent: -9999px;
}

Настройте его так, как считаете нужным.

Макет sitemesh по умолчанию содержит div с этим стилем и имеет display установлен на none, поэтому он не будет отображаться.

<div id="spinner" class="spinner" style="display:none;">
    <g:message code="spinner.alt" default="Loading&hellip;"/>
</div>

Типичное использование этого, если у вас есть некоторый Javascript, который выполняет действие, так что вы хотите отобразить счетчик во время этого действияпроисходит, что Javascript может установить этот атрибут display, и это будет приводить к отображению счетчика, пока что-то не установит этот атрибут обратно на none.

За все мои годы с использованием Грааля, у меня естьВы никогда не видели, чтобы в интерфейсе пользователя отображался счетчик, поэтому я не уверен, что это действительно работает?

Это возможно, если вы не внесли некоторые изменения, которые могут помешать этому.

Я думаю, я не хочу application.js?

Трудно сказать, хотите вы этого или нет.Это действительно зависит от того, что делает ваше приложение.Значение по умолчанию application.js для приложения 3.3.9 включает несколько других файлов .js ...

// This is a manifest file that'll be compiled into application.js.
//
// Any JavaScript file within this directory can be referenced here using a relative path.
//
// You're free to add application-wide JavaScript to this file, but it's generally better
// to create separate JavaScript files as needed.
//
//= require jquery-3.3.1.min
//= require bootstrap
//= require popper.min
//= require_self

Если вы не хотите, чтобы эти файлы были загружены, возможно, вы не захотите application.js.Конечно, вы можете отредактировать application.js, включив в него все, что вы хотите добавить.

Также не уверены, для чего это нужно, так как в нем нет содержимого:

<div class="footer" role="contentinfo"></div>

Этот элемент является заполнителем для отображения общих элементов нижнего колонтитула.

...