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

StackOverflow https://stackoverflow.com/questions/827711

  •  06-07-2019
  •  | 
  •  

Вопрос

  • Вы переключаете комментарии или фрагменты кода, чтобы быстро показать или скрыть контент?
  • Какие распространенные методы вы используете?
  • Существует ли общепринятый стандарт?
  • Следует ли избегать некоторых методов? т.е. могут ли они быть неверно истолкованы некоторыми двигателями?
  • Есть ли альтернатива или лучшее решение для этого?

Стандартный - Это то, что я использую для изучения большинства языков:CSS, JavaScript, PHP, ActionScript

/**/ visible /**/
/**\/ hidden /**/

HTML

<!----> visible <!---->
<!----/> hidden <!---->

PHP - Хорошо работает определение чего-то вроде $hide, другие переменные могут быть производственными или dev - большие плиты можно затем скрыть и отобразить вместе одним простым изменением переменной.

if(0){ hidden }
if(1){ visible }
if(!$HIDE){ content } // $HIDE defined elsewhere, visible if undefined
Это было полезно?

Решение

Я думаю, что если вы можете программно контролировать то, что отображается, это лучше всего (как вы делали в PHP).Еще лучшее решение, чем то, что вы написали (по сути, макрос локального препроцессора), — это фактически разбить код рендеринга на функции, которые генерируют подчасти документов.Если вам это не нужно, вы его не вызываете, и у вас есть четкое условие в коде.Так пишется, например, MediaWiki.Иначе в сложных проектах получается бардак.

Жесткое закодирование комментариев в коде сопряжено с множеством рисков.Среди них:

  • Очень легко испортить раскомментирование

  • Непонятно, что было прокомментировано.

  • Проблема, когда закомментированные разделы перекрываются.

  • Вырезать и вставлять ошибки

  • Все, что вы хотели скрыть, по-прежнему доступно, влияет на поисковые системы и т. д.

Другие советы

/*
Commented
// */

//*
Not commented
// */

Некоторые люди говорили мне, что правильный способ закомментировать разделы C++, поскольку мы, очевидно, больше не используем препроцессор, — это использовать if заявление.

if(false)
{
    chunk of code;
}

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

Эта теория, конечно, фиктивна, потому что вы не можете использовать ее для комментирования произвольных участков кода, например:

class Foo
{
    void Bar();
    if(false)
    {
        int Baz(double); // WRONG!!!
    }
};

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

Я предпочитаю использовать текстовый редактор, который понимает структуру исходного текста, который я редактирую (Вим и Эмакс являются почтенными фаворитами), и что умею сворачивать код на основе структуры, проанализированной редактором.

Любой из Вим складной или Emacs складной удовлетворяет эту потребность для меня.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top