Существует ли стандарт, позволяющий легко отображать и скрывать контент?
Вопрос
- Вы переключаете комментарии или фрагменты кода, чтобы быстро показать или скрыть контент?
- Какие распространенные методы вы используете?
- Существует ли общепринятый стандарт?
- Следует ли избегать некоторых методов? т.е. могут ли они быть неверно истолкованы некоторыми двигателями?
- Есть ли альтернатива или лучшее решение для этого?
Стандартный - Это то, что я использую для изучения большинства языков: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 складной удовлетворяет эту потребность для меня.