Suponha que você precise passar de uma página para outra. Existem várias maneiras abaixo. Você pode explicar claramente por quê?
<%--Forma de representação do link--%>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/Default2.aspx">HyperLink</asp:HyperLink>
<asp:LinkButton ID="LinkButton1" runat="server" PostBackUrl="~/Default2.aspx">LinkButton</asp:LinkButton>
<%--Por razões estéticas, muitos sites usarão botões para substituir links--%>
<asp:Button ID="Button1" runat="server" Text="Button" PostBackUrl="~/Default2.aspx" />
<%--Usando imagens como links, há duas opções--%>
<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>
Se você ainda está um pouco confuso, sugiro que verifique o código-fonte depois de gerar o html.
<a id="HyperLink1" href="Default2.aspx">HyperLink</a>
<%--Depois que o HyperLink é analisado em HTML, ele corresponde a um hiperlink simples e href aponta para a página a ser acessada--%>
<a id="LinkButton1" href="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("LinkButton1", "", false, "", "Default2.aspx", false, true))">LinkButton< /a>
<%--Embora LinkButton1 também seja uma tag âncora, na verdade ele usa JavaScript para saltar--%>
<input type="submit" name="Button1" value="Button" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("Button1", "", false, "", "Default2.aspx" , falso, falso))" id="Botão1" />
<%--button é analisado em um elemento de entrada de type="submit", e a página também é acessada por 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 é analisado em um elemento de entrada de type="image", e a página também é acessada por JavaScript--%>
<a id="HyperLink2" href="Default2.aspx"><img src="upup.gif" style="border-width:0px;"
<%--Após atribuir um valor ao atributo ImageUrl do HyperLink, após analisá-lo em Html, ele corresponde a uma img "cortada" em um hiperlink, mas o href ainda aponta para a página a ser saltada--%>
De que adianta saber disso?
Tem muitos usos, mas hoje falamos apenas de SEO.
Com a atual tecnologia de mecanismo de pesquisa, JavaScript (incluindo AJAX, é claro), elementos de formulário (como entrada), Flash e imagem não podem (ou são difíceis de) ler. "Spiders" tendem a ler texto simples formatado em HTML. Então, de uma perspectiva de SEO:
1. Não use JavaScript ou formulários para links de salto de página. Um <a></a> comum também pode realizar a mesma função. De modo geral, qualquer navegação que não seja acessível através do identificador de âncora padrão <a></a> não será recuperada pelos spiders. Se estivermos originalmente usando elementos do lado do cliente, deveria ser mais fácil perceber isso, mas ao usar controles encapsulados do lado do servidor, podemos ser descuidados.
2. Observe que não há conteúdo de texto no UpdatePanel. Podemos fazer um teste simples:
<asp:ScriptManager ID="ScriptManager1" runat="servidor">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="servidor">
<ContentTemplate>
<asp:Label runat="servidor" ID="lbl" ></asp:Label>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
</ContentTemplate>
</asp:UpdatePanel>
protegido vazio Button1_Click (objeto remetente, EventArgs e)
{
this.lbl.Text = "Fui gerado pelo UpdatePanel, então você não pode me ver!";
}
A parte do código-fonte após análise em HTML:
<div id="UpdatePanel1">
<span id="lbl"></span>
<input type="submit" name="Button1" value="Button" id="Submit1" />
</div>
Isso é fácil de entender porque o UpdatePanel também gera o conteúdo da página por meio da função JavaScript da página. Olhando para o código-fonte, podemos ver as funções JavaScript relevantes, mas não o conteúdo gerado pelas funções. Quanto aos spiders dos mecanismos de busca, eles olham apenas o código-fonte.
3. Quando precisamos usar uma página pop-up, a abordagem usual é:
<a href="#" onclick="window.open('popup.html','common','height=600,weight=800');">pop-up comum</a>
Pelo que explicamos acima, esta forma de escrever é sem dúvida prejudicial ao SEO. Portanto, devemos usar o código a seguir, que garante o efeito da janela pop-up e é SEO amigável. E mesmo que o navegador do cliente não suporte ou desative o JavaScript, a página ainda poderá saltar sem problemas.
<a href="popup.html" onclick="window.open(this.href,'seo','height=600,weight=800');return false;" target="_blank">seo pop-up</a >
<%--Nota: A instrução return false aqui não pode ser omitida. --%>
4. Quando queremos usar uma fonte especial (geralmente títulos de colunas e similares), geralmente usamos uma imagem de caracteres chineses. Isso também é problemático porque, como título, seu conteúdo costuma ser uma palavra-chave muito importante. Se você usar uma imagem, o spider não poderá lê-la. Uma solução possível é o sIFR, mas não estou muito familiarizado com isso, depois de pesquisar online, não parece ser aplicável a caracteres chineses;
Para imagens, nosso método SEO comumente usado é indicar título e alt, como
<img alt="ASP.NET Search Engine Optimization" title="Algumas técnicas de SEO que devem ser observadas ao desenvolver sites usando a tecnologia ASP.NET" src="seo.gif" />
No entanto, este também é um “elemento de página invisível” e o efeito específico é difícil de medir com precisão. Mas algo é melhor que nada!
5. Algumas outras notas:
5.1 Combine a semântica das tags html com css Diferente de "span" e "div", "h1" significa título, "b" significa ênfase, "ul" e "li" significam lista... Essas tags semânticas podem fornecer pesquisa. instruções mais claras dos motores;
5.3 Coloque conteúdo importante no topo da página html (referindo-se ao código-fonte, não aos resultados exibidos pelo navegador)
5.5 Coloque grandes seções de JavaScript na parte inferior da página ou em arquivos js separados;
5.2 É melhor não usar layout de quadro;
5.3 Um grande número de VIEWSTATE pode causar interferência no “Spider”;
5.5 Tenha em mente: Com a atual tecnologia de mecanismo de busca, JavaScript (incluindo AJAX, é claro), elementos de formulário (como entrada), Flash e Imagem não podem (ou são difíceis de) ler.