Предположим, вам нужно перейти с одной страницы на другую. Ниже представлено множество способов. Как выбрать? Можете ли вы ясно объяснить, почему?
<%--Форма представления ссылки--%>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/Default2.aspx">HyperLink</asp:HyperLink>
<asp:LinkButton ID="LinkButton1" runat="server" PostBackUrl="~/Default2.aspx">LinkButton</asp:LinkButton>
<%--Из эстетических соображений многие веб-сайты используют кнопки для замены ссылок--%>
<asp:Button ID="Button1" runat="server" Text="Button" PostBackUrl="~/Default2.aspx" />
<%--Использовать изображения в качестве ссылок, есть два варианта--%>
<asp:ImageButton ID="ImageButton1" runat="server" PostBackUrl="~/Default2.aspx" ImageUrl="~/upup.gif" />
<asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl="~/Default2.aspx" ImageUrl="~/upup.gif"></asp:HyperLink>
Если вы все еще немного запутались, предлагаю вам проверить исходный код после того, как они сгенерируют html.
<a id="HyperLink1" href="Default2.aspx">Гиперссылка</a>
<%--После анализа гиперссылки в HTML она соответствует простой гиперссылке, а href указывает на страницу, на которую нужно перейти--%>
<a id="LinkButton1" href="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("LinkButton1", "", false, "", "Default2.aspx", false, true))">LinkButton< /а>
<%--Хотя LinkButton1 также является тегом привязки, на самом деле для перехода он использует JavaScript--%>
<input type="submit" name="Button1" value="Button" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("Button1", "", false, "", "Default2.aspx" , ложь, ложь))" id="Button1" />
<%--button анализируется во входной элемент type="submit", а страница также перескакивает через JavaScript--%>
<input type="image" name="ImageButton1" id="ImageButton1" src="upup.gif" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ImageButton1", "", false, "" , "Default2.aspx", false, false))" style="border-width:0px;" />
<%--ImageButton анализируется во входной элемент type="image", а страница также перескакивает через JavaScript--%>
<a id="HyperLink2" href="Default2.aspx"><img src="upup.gif" style="border-width:0px;" /></a>
<%--После присвоения значения атрибуту ImageUrl HyperLink, после его анализа в Html, оно соответствует img, "обрезанному" в гиперссылке, но href по-прежнему указывает на страницу, на которую нужно перейти--%>
Какой смысл это знать?
У него много применений, но сегодня мы говорим только о SEO.
При нынешних технологиях поисковых систем JavaScript (включая AJAX, конечно), элементы форм (такие как ввод), Flash и изображения не могут (или их трудно) прочитать. «Пауки» обычно читают простой текст в формате HTML. Итак, с точки зрения SEO:
1. Не используйте JavaScript или формы для ссылок перехода на страницу. Обычный <a></a> также может выполнять ту же функцию. Вообще говоря, любая навигация, недоступная через стандартный идентификатор привязки <a></a>, не будет получена пауками. Если мы изначально используем элементы на стороне клиента, нам будет легче это заметить, но при использовании инкапсулированных элементов управления на стороне сервера мы можем быть небрежны;
2. Обратите внимание, что в UpdatePanel нет текстового содержимого. Мы можем провести простой тест:
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<СодержимоеШаблон>
<asp:Label runat="server" ID="lbl" ></asp:Label>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
</ContentTemplate>
</asp:UpdatePanel>
protected void Button1_Click (отправитель объекта, EventArgs e)
{
this.lbl.Text = "Меня сгенерировала UpdatePanel, поэтому вы меня не видите!";
}
Часть исходного кода после анализа в Html:
<div id="UpdatePanel1">
<span id="lbl"></span>
<input type="submit" name="Button1" value="Button" id="Submit1" />
</div>
Это легко понять, поскольку UpdatePanel также генерирует содержимое страницы с помощью функции JavaScript страницы. Глядя на исходный код, мы видим соответствующие функции JavaScript, но не контент, генерируемый этими функциями. Что касается пауков поисковых систем, то они просматривают только исходный код.
3. Когда нам нужно использовать всплывающую страницу, обычный подход таков:
<a href="#" onclick="window.open('popup.html','common','height=600,weight=800');">обычное всплывающее окно</a>
Согласно тому, что мы объяснили выше, такой способ написания, несомненно, вреден для SEO. Поэтому нам следует использовать следующий код, который обеспечивает эффект всплывающего окна и оптимизирован для SEO. И даже если браузер клиента не поддерживает или отключил JavaScript, страница все равно может переходить плавно.
<a href="popup.html" onclick="window.open(this.href,'seo','height=600,weight=800');return false;" target="_blank">всплывающее всплывающее окно</a >
<%--Примечание. Оператор return false здесь нельзя опустить. --%>
4. Когда мы хотим использовать специальный шрифт (часто заголовки столбцов и т.п.), мы часто используем вместо него изображение китайских иероглифов. Это тоже неприятная вещь, потому что в качестве заголовка часто очень важным ключевым словом является его содержание. Если вы используете изображение, паук не сможет его прочитать. Одним из возможных решений является sIFR, но я не очень знаком с этим, после поиска в Интернете, похоже, оно неприменимо к китайским иероглифам.
Для изображений наш обычно используемый метод SEO заключается в указании заголовка и альтернативного варианта, например:
<img alt="Поисковая оптимизация ASP.NET" title="Некоторые методы SEO, на которые следует обратить внимание при разработке веб-сайтов с использованием технологии ASP.NET" src="seo.gif" />
Однако это тоже «невидимый элемент страницы», и конкретный эффект сложно точно измерить. Но что-то лучше, чем ничего!
5. Еще несколько примечаний:
5.1 Объедините семантику тегов HTML с CSS. В отличие от «span» и «div», «h1» означает заголовок, «b» означает выделение, «ul» и «li» означают список... Эти семантические теги могут давать поиск. более четкие инструкции по двигателям;
5.3 Размещайте важный контент вверху html-страницы (ссылаясь на исходный код, а не на результаты, отображаемые браузером).
5.5. Размещайте большие разделы JavaScript внизу страницы или в отдельных js-файлах;
5.2 Лучше не использовать фреймовую компоновку;
5.3 Большое количество VIEWSTATE может вызвать помехи в работе «Паука»;
5.5 Имейте в виду: при нынешних технологиях поисковых систем JavaScript (включая AJAX, конечно), элементы форм (такие как ввод), Flash и изображения не могут (или их трудно) прочитать.