GVKun编程网logo

Facebook如何在浏览器地址栏中重写页面的源URL?(facebook url)

25

在本文中,我们将为您详细介绍Facebook如何在浏览器地址栏中重写页面的源URL?的相关知识,并且为您解答关于facebookurl的疑问,此外,我们还会提供一些关于Facebookandroids

在本文中,我们将为您详细介绍Facebook如何在浏览器地址栏中重写页面的源URL?的相关知识,并且为您解答关于facebook url的疑问,此外,我们还会提供一些关于Facebook android sdk如何获得给定页面的喜欢数量、Facebook如何加载页面?、Facebook如何在AJAX页面加载期间显示浏览器加载进度?、html – 从浏览器的地址栏输入URL到浏览器中渲染页面的完整过程是什么?的有用信息。

本文目录一览:

Facebook如何在浏览器地址栏中重写页面的源URL?(facebook url)

Facebook如何在浏览器地址栏中重写页面的源URL?(facebook url)

转到http://www.facebook.com/facebook?v=wall,然后单击信息选项卡。内容将被加载,并且地址栏现在变为http://www.facebook.com/facebook?v=info,但网页没有重新加载。

起初我认为是Ajax,但我的问题是,如何在不重新加载的情况下更改地址栏?我知道我可以使用JS更改锚点(#wall),但可以查询字符串(?v =wall),怎么办?

答案1

小编典典

它使用HTML5的新history.pushState()功能,允许页面伪装成与原始页面不同的URL。

目前,WebKit似乎仅对此提供支持,这就是为什么我们其他人看到?v=wall#!/facebook?v=info而不是的原因?v=info

该功能允许动态加载的页面在支持JS的用户代理和不支持JS的用户代理之间进行正确的书签,交换等操作。因为如果您作为JS用户,将某人链接到该网站,?v=wall#!/facebook?v=info并且他们的浏览器不支持JS和XMLHttpRequest,则该页面将不适用于他们。该#!也被用来作为小费给搜索引擎,下载非AJAX版本。

Facebook android sdk如何获得给定页面的喜欢数量

Facebook android sdk如何获得给定页面的喜欢数量

我想获得具有id的给定页面的喜欢数量.

这是graph api request我想用facebook-android-sdk翻译.

我无法想象如何制作它.如果我尝试,我会收到错误:

Bundle params = new Bundle();
params.putString("fields", "likes");
Request request = new Request(session,"104249301622", params, HttpMethod.GET, new Request.Callback() {  
    @Override
    public void onCompleted(Response response) {
        JSONObject res = response.getGraphObject().getInnerjsonObject();
        System.out.println(res);
    }
});

解决方法:

这是调用的方法:

Session session = Session.getActiveSession();
Bundle params = new Bundle();
params.putString("id", "104249301622");
params.putString("fields", "likes");
Request request = new Request(session, "search", params, HttpMethod.GET, new Request.Callback() {

    @Override
    public void onCompleted(Response response) {
        try {
            JSONObject res = response.getGraphObject().getInnerjsonObject().getJSONArray("data").getJSONObject(0);
            numberOfLikes = res.getInt("likes");
        } catch (Exception e) {
        }
    }
});
RequestAsyncTask task = new RequestAsyncTask(request);
task.execute();

该请求将在以下graph api request中翻译.

Facebook如何加载页面?

Facebook如何加载页面?

我已经通过Ajax调用通过隐藏的iframe读取了Facebook加载页面的地方…这是真的吗?

Facebook如何在AJAX页面加载期间显示浏览器加载进度?

Facebook如何在AJAX页面加载期间显示浏览器加载进度?

为了使IM Client始终保持登录状态,Facebook通过在将页面插入文档之前使用AJAX加载页面来避免整个页面加载。

但是,在Facebook AJAX请求期间,浏览器似乎正在加载。重新加载按钮变为X,浏览器中内置的进度指示器指示正在加载/正在等待等)

我已经能够成功实现基于AJAX的导航,但是我的浏览器没有显示任何加载迹象(由于请求是异步的),Facebook如何做到这一点?

答案1

小编典典

当文档中正在加载的元素时,浏览器将显示加载状态。Ajax请求完全来自JavaScript。该文档不会受到影响,因此不会触发加载状态。

另一方面,Facebook的大多数请求都是通过<script>在文档中插入标签,指向包含所需数据的JavaScript文件来进行的。(基本上是JSONP,除非它们使用不同的格式。)浏览器将显示其加载状态,因为<script>标签是文档中的未加载元素。

如果您不小心,此技术/
JSONP可能会使您的站点面临安全风险,因为允许跨站点请求。Facebook通过为每个资源生成随机URL来处理此问题,该URL在初始页面加载时发送到浏览器。

html – 从浏览器的地址栏输入URL到浏览器中渲染页面的完整过程是什么?

html – 从浏览器的地址栏输入URL到浏览器中渲染页面的完整过程是什么?

我在想这个问题很久了.这是一个大问题,因为它几乎涵盖了与Web开发相关的所有角落.

据我所知,这个过程应该是:

>输入URL到地址栏
>根据您的网络配置,请求将发送到DNS服务器
> DNS将路由您到域名的真实IP
>一个请求(具有完整的Http头)将被发送到服务器(具有3的IP来识别)的80端口(假设我们不指定另一个端口)
>服务器将搜索侦听端口,并将请求转发到正在监听80端口的应用程序(这里是Nginx)或另一台服务器(然后3的服务器将像一个负载均衡器)
> Nginx将尝试将url与其配置匹配,直接用作静态页面,或者调用相应的脚本内部代码(例如PHP / Python)或其他应用程序来获取动态内容(使用DB查询或其他逻辑)
>一个html将被发回到具有完整Http响应头的浏览器
>浏览器将使用其解析器解析html的DOM
>将按顺序请求外部资源(JS / CSS / images / flash / videos ..)(或不是?)
对于JS,它将由JS引擎执行
>对于CSS,它将由CSS引擎渲染,HTML的显示将根据CSS进行调整(也可以按顺序或不?)
>如果DOM中有一个iframe,那么将从步骤1-12执行一个单独的相同过程

以上是我的理解,但我不知道是否正确?多少精确?我错过了什么?

如果它是正确的(或几乎是正确的),我希望:

>使您的话中的步骤的描述更精确,或者如果发生重大变化,请写下您的步骤
>对您最熟悉的每一步进行深入的解释.
>一步一回答其他人可以在每个答案的评论中补充.

我希望这个线程可以帮助所有的Web开发人员更好地了解我们每天的工作.

我会根据答案更新这个问题.

谢谢.

解决方法

正如你所说,这是一个广泛的问题,可以详细介绍一些主题.你描述的顺序没有什么问题,但是你会留下很多细节.提到几个:

> DNS层可以帮助客户端根据地理位置将客户端引导到不同的服务器,以帮助实现负载平衡和延迟最小化,一个服务器可以响应许多不同DNS名称的请求.
>浏览器可以制作不同类型的请求(GET,POST,HEAD等),通常包括几个不同的标头,包括Cookie,浏览器功能,语言偏好等.
大多数浏览器通常会保留一个缓存,以免多次下载东西,并使用各种技术来确定文件的缓存版本是否有效.
>在现代网页中,许多不同类型的文件(HTML,CSS,图像,JavaScript,视频,Flash,…)之间经常会发生复杂的交互,网页开发人员通常需要详细了解浏览器之间的差异,以保持网页的工作为了所有人

这些话题中的每一个等等,都可以详细讨论.请问有关您感兴趣的主题的更具体的问题更为实际吗?

我们今天的关于Facebook如何在浏览器地址栏中重写页面的源URL?facebook url的分享就到这里,谢谢您的阅读,如果想了解更多关于Facebook android sdk如何获得给定页面的喜欢数量、Facebook如何加载页面?、Facebook如何在AJAX页面加载期间显示浏览器加载进度?、html – 从浏览器的地址栏输入URL到浏览器中渲染页面的完整过程是什么?的相关信息,可以在本站进行搜索。

本文标签: