用a标签访问后台,返回一段代码片段,或者干脆新打开一个页面。那种方法好?

我是要做一个分页效果,左侧是简易的分页,显示页面,显示一些帖子标题。要求我点击标题后,在右侧的区域中,显示该帖子的详细信息。分页也做好了,内容显示也做好了。我用的ajax做的,点击后,访问后天,后台返回json,我前台再赋值即可。这样简单。但是他觉得这样SEO不好,要我改成href直接打开的方式。不知道一般情况下,这种问题都是如何解决的?我是做php的

我建议这样子:保留已经实现的,另外再加个显示内容的页面即可。


首先,生成这个文章列表,href 也是实际文章链接,点击链接会打开页面显示文章内容。

然后,添加 JS 代码,绑定事件处理函数,ajax 请求的 url 可以直接获取链接的 href,如

文章列表页面 news.php

<a href="news_item.php?id=1" target="_blank" class="news-title">文章标题1</a>
<a href="news_item.php?id=2" class="news-title">文章标题2</a>

<script>
// 假设使用 jQuery
$(document.body).on( 'click', '.news-title', function(){
    // 通过 ajax 获取文章内容并显示
    // 直接将 a 的链接作为请求的 url。
    var $this = $(this), url = $this.attr('href');
    $.ajax({
        url: url // 当然,可以对 url 进行处理,根据自己需要进行构建
        // code ...
    });
    return false; // 禁止链接的默认行为,对于浏览者而言,不会另外打开页面了
});
</script>

另外应该还需要一个显示内容的页面 news_item.php


对于通过浏览器来浏览页面的用户而言,他点击文章标题不会另外打开页面看内容,而是会通过 ajax 的方式获取文章内容显示在页面右侧,即他会一直在 news.php 页面


对于搜索引擎而言,打开 news.php,它不会执行 js,而是解析出一个个文章链接后,会去爬这些文章的页面(news_item.php),这样子,文章内容就可以被收录了。


最后,分页的链接也要处理下。处理的方式是类似的,如:

文章列表页面 news.php

<a href="news.php?paged=1" class="page">1</a>
<a href="news.php?paged=2" class="page">2</a>
<a href="news.php?paged=3" class="page">3</a>
<script>
$(document.body).on( 'click', '.page', function(){
    var $this = $(this), url = $this.attr('href');
    $.ajax({
        url: url,
        success: function() {
            // 列表的刷新
            // 页码栏的刷新
        }
    });
    return false;
});
</script>


对于搜索引擎而言,它会一个个爬过来 news.php?page=1, news.php?page=2,... 等等。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-09-22

感觉不会影响SEO吧 (T_T我不懂SEO)


如果要用<a href 的方式的话,

可以把右侧区域改为IFrame,

点击链接之后把href给IFrame的src即可。


例子如下

<ul>
<li><a href="" target="iframe_a"><span></span></a></li>
</ul>
<iframe src=""  frameborder="0" scrolling="auto" height="842px" name="iframe_a" style="float:right;width:67%;"></iframe>

本回答被提问者采纳
第2个回答  2014-04-09
想要SEO 可以使用模板导入
相似回答