在本文中,我们将为您详细介绍Facebook如何在浏览器地址栏中重写页面的源URL?的相关知识,并且为您解答关于facebookurl的疑问,此外,我们还会提供一些关于Facebookandroids
在本文中,我们将为您详细介绍Facebook如何在浏览器地址栏中重写页面的源URL?的相关知识,并且为您解答关于facebook url的疑问,此外,我们还会提供一些关于Facebook android sdk如何获得给定页面的喜欢数量、Facebook如何加载页面?、Facebook如何在AJAX页面加载期间显示浏览器加载进度?、html – 从浏览器的地址栏输入URL到浏览器中渲染页面的完整过程是什么?的有用信息。
本文目录一览:- Facebook如何在浏览器地址栏中重写页面的源URL?(facebook url)
- Facebook android sdk如何获得给定页面的喜欢数量
- Facebook如何加载页面?
- Facebook如何在AJAX页面加载期间显示浏览器加载进度?
- html – 从浏览器的地址栏输入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如何获得给定页面的喜欢数量
我想获得具有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如何加载页面?
我已经通过Ajax调用通过隐藏的iframe读取了Facebook加载页面的地方…这是真的吗?
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到浏览器中渲染页面的完整过程是什么?
据我所知,这个过程应该是:
>输入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到浏览器中渲染页面的完整过程是什么?的相关信息,可以在本站进行搜索。
本文标签: