# AJAX 增强网站

## 设计AJAX支持的网站以提高可访问性

许多网站站长发现了利用AJAX改善其网站的用户体验的优势，它可以创建动态网页作为强大的网络应用。但是就像Flash一样，如果没有仔细实施该技术，AJAX会使搜索引擎难以将网站编入索引。与AJAX有关的搜索引擎问题主要有两个：确保搜索引擎漫游器能够看到您的内容和确保它们可以看到并跟踪您的导航。

尽管Googlebot非常理解HTML链接的结构，但是它在使用JavaScript进行导航的网站中还是会遇到寻找路径方面的问题。我们正在努力使其更好地理解JavaScript，但是要创建Google和其他搜索引擎可抓取的网站，最好还是提供指向内容的HTML链接。**以易于访问为目的进行设计**<br>

我们鼓励网站站长针对用户（而不仅仅针对搜索引擎）创建网页。您在设计AJAX网站时要考虑用户的需求，包括那些使用不支持JavaScript功能的浏览器的用户（例如使用屏幕阅读器或移动设备的用户）。测试网站可访问性的其中一种最简单的方法是：在停用JavaScript后通过浏览器预览网站，或在纯文本浏览器（例如Lynx）中查看网站。以纯文本形式查看网站还可帮助您找出Googlebot难以看到的其他内容，例如[图片或Flash中嵌入的文字](https://support.google.com/webmasters/answer/72746)。**避免使用iframe或分别指向其内容的链接**<br>

通过iframe显示的内容可能不会被编入索引，也不会在Google的搜索结果中显示。我们建议您避免使用iframe显示内容。如果您的网站中使用了iframe，请务必额外提供基于文本的链接以指向iframe所显示的内容，以便Googlebot能够抓取这些内容并将其编入索引。**以渐进增强的方式进行开发**<br>

如果您是从头开始，那么仅使用HTML构建网站结构和导航是一个不错的方法。然后，在网站的网页、链接和内容就绪后，您可以使用AJAX对外观和界面进行修饰。Googlebot可以很轻松地查看HTML，而使用新式浏览器的用户也可以享受AJAX的优势。

当然，您的有些链接很可能需要JavaScript，以实现AJAX功能。网络开发者杰里米·基思(Jeremy Keith)将此技术叫做[Hijax](http://domscripting.com/presentations/xtech2006/)，它是帮助AJAX和静态链接共存的一种方法。

创建一定格式的链接，以便它们既能提供静态链接又能调用JavaScript功能。通过这种方法，您的JavaScrip用户可以使用AJAX功能，而您的非JavaScrip用户可以忽略此脚本并点击此链接。例如：

```
<a href="ajax.htm?foo=32" onClick="navigate('ajax.html#foo=32');
 return false">foo 32</a>
```

请注意，静态链接网址含有参数(?foo=32)，而不是AJAX代码所使用的片段(#foo=32)。这一点非常重要，因为搜索引擎能理解网址参数，但经常会忽略片段。由于您现在提供的是静态链接，因此用户和搜索引擎可以链接到想要分享或参考的准确内容。

尽管我们在不断改善我们的抓取功能，但使用HTML链接仍不失为一个很好的方法，它可以帮助我们（以及其他搜索引擎、移动设备和用户）更好地理解您网站的结构。**遵从指南**<br>

除了上面提到的技巧之外，我们还建议您查看我们的[网站站长指南](https://support.google.com/webmasters/answer/35769)，以详细了解如何使网站便于Google和用户访问。该指南还指出了一些需要避免的做法，例如[欺骗性的JavaScript重定向](https://support.google.com/webmasters/answer/2721217)。要遵从的通用原则是：尽管您可以根据用户的能力为用户提供不同体验，但是内容应该相同。例如，设想我们为王燕的仓鼠商店创建了网页。网页顶部是“王燕的仓鼠商店”标题，下面是由AJAX技术驱动的最新仓鼠到货消息的幻灯演示。在同一网页上停用JavaScript后，不会应出现其他文本消息而令用户感到奇怪：

> 王燕的仓鼠商店 - 仓鼠、最好的仓鼠、低价仓鼠、免费仓鼠、宠物、商店、仓鼠商店、会跳舞的仓鼠、啮齿动物、苍鼠、沧鼠、最好的仓鼠资源、宠物玩具、舞蹈课、可爱、仓鼠的小把戏、宠物食品、仓鼠习性、仓鼠旅馆、仓鼠生日礼物创意，以及更多内容！

较好的实施方法是：无论是否启用JavaScript，都应该显示相同的文字内容；最佳方案是：为非JavaScript用户提供HTML版本的幻灯演示。[详细了解隐藏文字](https://support.google.com/webmasters/answer/66353)。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://blog.jasonzhang.cc/google-dev/search-console-bang-zhu/zhuan-men-mian-xiang-nei-rong-de-zhi-nan/ajax-zeng-qiang-wang-zhan.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
