한 페이지에서 다른 페이지로 이동해야 한다고 가정해 보겠습니다. 아래에 여러 가지 방법이 있습니다. 이유를 명확하게 설명할 수 있나요?
<%--링크 표현 형식--%>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/Default2.aspx">HyperLink</asp:HyperLink>
<asp:LinkButton ID="LinkButton1" runat="server" PostBackUrl="~/Default2.aspx">링크버튼</asp:LinkButton>
<%--미적인 이유로 많은 웹사이트에서는 버튼을 사용하여 링크를 대체합니다--%>
<asp:Button ID="Button1" runat="server" Text="Button" PostBackUrl="~/Default2.aspx" />
<%--사진을 링크로 사용하면 두 가지 옵션이 있습니다--%>
<asp:ImageButton ID="ImageButton1" runat="서버" 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>
<%--HyperLink를 Html로 파싱한 후, 이는 단순 하이퍼링크에 해당하며, href는 이동할 페이지를 가리킵니다--%>
<a id="LinkButton1" href="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("LinkButton1", "", false, "", "Default2.aspx", false, true))">링크버튼< /a>
<%--LinkButton1도 앵커 태그이지만 실제로는 JavaScript를 사용하여 점프합니다--%>
<input type="submit" name="Button1" value="Button" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("Button1", "", false, "", "Default2.aspx" , 거짓, 거짓))" id="Button1" />
<%--버튼은 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>
<%--HyperLink의 ImageUrl 속성에 값을 할당한 후 Html로 구문 분석한 후 하이퍼링크에서 "잘린" img에 해당하지만 href는 여전히 이동할 페이지를 가리킵니다.--%>
이걸 알면 무슨 소용이 있나요?
용도는 다양하지만 오늘은 SEO에 대해서만 이야기하겠습니다.
현재 검색 엔진 기술로는 JavaScript(AJAX 포함), 양식 요소(예: 입력), Flash 및 Image를 읽을 수 없습니다(또는 읽기 어렵습니다). "스파이더"는 간단한 HTML 형식의 텍스트를 읽는 경향이 있습니다. 따라서 SEO 관점에서 보면 다음과 같습니다.
1. 페이지 이동 링크에 JavaScript나 양식을 사용하지 마십시오. 일반 <a></a>도 동일한 기능을 수행할 수 있습니다. 일반적으로 표준 앵커 식별자 <a></a>를 통해 액세스할 수 없는 탐색은 스파이더에 의해 검색되지 않습니다. 원래 클라이언트 측 요소를 사용하는 경우 이를 알아차리기가 더 쉽지만 캡슐화된 서버 측 컨트롤을 사용할 때는 부주의할 수 있습니다.
2. UpdatePanel에는 텍스트 콘텐츠가 없습니다. 간단한 테스트를 할 수 있습니다:
<asp:ScriptManager ID="ScriptManager1" runat="서버">
</asp:스크립트매니저>
<asp:UpdatePanel ID="UpdatePanel1" runat="서버">
<컨텐츠템플릿>
<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">seo 팝업</a >
<%--참고: 여기서 return false 문은 생략할 수 없습니다. --%>
4. 특수 글꼴(주로 열 제목 등)을 사용하고 싶을 때 대신 한자 그림을 사용하는 경우가 많습니다. 제목으로서 내용이 매우 중요한 키워드인 경우가 많기 때문에 이미지를 사용하면 스파이더가 이를 읽을 수 없기 때문에 이 역시 귀찮은 일입니다. 가능한 해결책 중 하나는 sIFR이지만 온라인에서 검색한 후에는 이에 대해 잘 모르겠습니다. 한자에는 적용할 수 없는 것 같습니다.
사진의 경우 일반적으로 사용되는 SEO 방법은 다음과 같은 제목과 대체를 표시하는 것입니다.
<img alt="ASP.NET 검색 엔진 최적화" title="ASP.NET 기술을 사용하여 웹사이트를 개발할 때 주의해야 할 몇 가지 SEO 기술" src="seo.gif" />
그러나 이 역시 '보이지 않는 페이지 요소'이기 때문에 구체적인 효과를 정확하게 측정하기는 어렵다. 하지만 없는 것보다는 뭔가가 있는 것이 낫습니다!
5. 기타 참고사항:
5.1 html 태그의 의미를 CSS와 결합합니다. "span" 및 "div"와는 달리 "h1"은 제목을 의미하고 "b"는 강조를 의미하며 "ul" 및 "li"는 목록을 의미합니다. 이러한 의미 태그는 검색 기능을 제공할 수 있습니다. 엔진에 대한 더 명확한 지침;
5.3 HTML 페이지 상단에 중요한 콘텐츠를 배치하세요(브라우저에 표시되는 결과가 아닌 소스 코드 참조).
5.5 페이지 하단이나 별도의 js 파일에 JavaScript의 큰 섹션을 배치합니다.
5.2 프레임 레이아웃을 사용하지 않는 것이 가장 좋습니다.
5.3 다수의 VIEWSTATE는 "스파이더"에 간섭을 일으킬 수 있습니다.
5.5 명심하십시오: 현재 검색 엔진 기술로는 JavaScript(물론 AJAX 포함), 양식 요소(예: 입력), Flash 및 이미지를 읽을 수 없습니다(또는 읽기 어렵습니다).