Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AJAX加载内容的优缺点_Ajax_Jquery - Fatal编程技术网

AJAX加载内容的优缺点

AJAX加载内容的优缺点,ajax,jquery,Ajax,Jquery,通过许多过滤器对数据集进行排序并立即显示结果是非常好的,对吗? 我的解决方案是将filter read forms参数发布到一个名为dataset.php的页面,该页面以编译好的HTML返回相应的数据集,可以直接加载到我的页面中 因此,除了对SEO和停用Javascript的人来说这是一个完全不允许的问题外,它似乎是一个很好的解决方案,可以在将来轻松地构建 然而,我还没有经验,认为这是一个好的或坏的整体解决方案。对于AJAX获取的数据集,我们应该关注什么呢?您已经列出了两大数据集。现在,您需要做

通过许多过滤器对数据集进行排序并立即显示结果是非常好的,对吗? 我的解决方案是将filter read forms参数发布到一个名为dataset.php的页面,该页面以编译好的HTML返回相应的数据集,可以直接加载到我的页面中

因此,除了对SEO和停用Javascript的人来说这是一个完全不允许的问题外,它似乎是一个很好的解决方案,可以在将来轻松地构建


然而,我还没有经验,认为这是一个好的或坏的整体解决方案。对于AJAX获取的数据集,我们应该关注什么呢?

您已经列出了两大数据集。现在,您需要做的就是确保所有功能都可以在不使用javascript的情况下工作—使用请求的数据集重新加载页面,并使用AJAX改进它—在不重新加载页面的情况下加载请求的数据集。

您已经命名了两个大的数据集。现在,您需要做的就是确保所有功能都可以在不使用javascript的情况下工作—使用请求的数据集重新加载页面,并使用AJAX改进它—在不重新加载页面的情况下加载请求的数据集。

这在很大程度上取决于上下文。在某些情况下,今天的人们可能希望结果能够在不刷新页面的情况下立即交付。它也确实改善了总体用户体验——同样,这在很大程度上取决于上下文


然而,它也有它的陷阱。在交付ajax内容后,用户是否需要返回到前面的页面?因为这可能不像在浏览器中按后退按钮那么简单

这在很大程度上取决于上下文。在某些情况下,今天的人们可能希望结果能够在不刷新页面的情况下立即交付。它也确实改善了总体用户体验——同样,这在很大程度上取决于上下文

然而,它也有它的陷阱。在交付ajax内容后,用户是否需要返回到前面的页面?因为这可能不像在浏览器中按后退按钮那么简单

因此,除了对SEO和停用Javascript的人来说这是一个完全不允许的问题外,它似乎是一个很好的解决方案,可以在将来轻松地构建

不完全正确,有一些解决方案,比如支持AJAX内容和历史跟踪,同时保持SEO和javascript禁用友好。你可以在我自己的网站上看到这一点,有证据表明它仍然是SEO友好的

然而,我还没有经验,认为这是一个好的或坏的整体解决方案。对于AJAX获取的数据集,我们应该关注什么

加载Ajax的内容对于用户体验来说是非常好的,它的速度很快,而且看起来很好看。如果您没有历史记录跟踪,那么它可能会非常混乱,特别是如果您将ajax加载的内容用于页面之类的内容,而不仅仅是侧边栏内容,那么您就脱离了用户体验到的一致性。另一个警告是针对Ajax页面的Google Analytics跟踪。这些缺点,你已经提到过的,也是非常困难的问题

前面提到的jQueryAjaxy为几乎所有的问题提供了一个很好的高级解决方案,但是如果您还没有使用过控制器体系结构,但大多数人很快就得到了它,那么它将是一个很大的学习曲线

例如,要使用jQuery Ajaxy启用可跟踪历史的ajax内容来更改一组结果,实际上不需要任何服务器端更改。您可以在页面底部执行类似操作:$'results ul.pages li.page a'.addClass'ajaxy ajaxy resultset'.ajaxify

然后像这样设置Ajaxy控制器,从响应中获取我们想要的内容:

        'resultset': {
            selector: '.ajaxy-resultset',
            request: function(){
                // Hide Content
                $result.stop(true,true).fadeOut(400);
                // Return true
                return true;
            },
            response: function(){
                // Prepare
                var Ajaxy = $.Ajaxy; var data = this.State.Response.data; var state = this.state;
                // Show Content
                var Action = this;
                var newResultContent = $(data.content).find('#result').html();
                $result.html(newResultContent).fadeIn(400,function(){
                    Action.documentReady($result);
                });
                // Return true
                return true;
            }
        }
这就是它的全部,上面的大部分只是从演示页面复制和粘贴代码。当然,这并不理想,因为我们在Ajax响应中返回了整个页面,但无论如何都必须这样做。您总是可以对脚本进行更多的升级,并在服务器端检查XHR头,如果设置了XHR头,那么我们就是一个ajax请求,因此只需呈现结果部分而不是所有内容

因此,除了对SEO和停用Javascript的人来说这是一个完全不允许的问题外,它似乎是一个很好的解决方案,可以在将来轻松地构建

不完全正确,有一些解决方案,比如支持AJAX内容和历史跟踪,同时保持SEO和javascript禁用友好。你可以在我自己的网站上看到这一点,有证据表明它仍然是SEO友好的

然而,我还没有经验,认为这是一个好的或坏的整体解决方案。对于AJAX获取的数据集,我们应该关注什么

加载Ajax的内容对于用户体验来说是非常好的,它的速度很快,而且看起来很好看。如果您没有历史记录跟踪,那么它可能会非常混乱 特别是,如果您将ajax加载的内容用于页面之类的内容,而不仅仅是边栏内容,那么您将摆脱用户体验到的一致性。另一个警告是针对Ajax页面的Google Analytics跟踪。这些缺点,你已经提到过的,也是非常困难的问题

前面提到的jQueryAjaxy为几乎所有的问题提供了一个很好的高级解决方案,但是如果您还没有使用过控制器体系结构,但大多数人很快就得到了它,那么它将是一个很大的学习曲线

例如,要使用jQuery Ajaxy启用可跟踪历史的ajax内容来更改一组结果,实际上不需要任何服务器端更改。您可以在页面底部执行类似操作:$'results ul.pages li.page a'.addClass'ajaxy ajaxy resultset'.ajaxify

然后像这样设置Ajaxy控制器,从响应中获取我们想要的内容:

        'resultset': {
            selector: '.ajaxy-resultset',
            request: function(){
                // Hide Content
                $result.stop(true,true).fadeOut(400);
                // Return true
                return true;
            },
            response: function(){
                // Prepare
                var Ajaxy = $.Ajaxy; var data = this.State.Response.data; var state = this.state;
                // Show Content
                var Action = this;
                var newResultContent = $(data.content).find('#result').html();
                $result.html(newResultContent).fadeIn(400,function(){
                    Action.documentReady($result);
                });
                // Return true
                return true;
            }
        }

这就是它的全部,上面的大部分只是从演示页面复制和粘贴代码。当然,这并不理想,因为我们在Ajax响应中返回了整个页面,但无论如何都必须这样做。您总是可以对脚本进行更多的升级,并在服务器端检查XHR头,如果设置了XHR头,那么我们就是一个ajax请求,因此只需呈现结果部分而不是所有内容

这是一个很好的答案,有一个很好的例子。非常感谢,巴卢普顿!这是一个很好的答案,有一个很好的例子。非常感谢,巴卢普顿!