我知道当一个人通过edge.create方法从Facebook标签中点击“喜欢”按钮时,你可以捕捉到这个事件,但我想知道的是,如果有一种方法可以捕获Facebook时的按钮单击页面顶部,目的是找出我的粉丝页面中的哪个标签生成了喜欢的内容。
当页面重新加载时,我会知道页面是喜欢的,但我不知道是否是从同一页面上的一个标签或另一个标签生成的。
答案 0 :(得分:3)
我能想到的唯一足够准确的解决方案如下:
使用第一个应用请求在服务器端启动会话。 请记住signed_request中的类似状态以及发布时的时间戳。
在标签应用中嵌入javascript间隔,每隔几秒就向服务器发出一次AJAX请求。我认为你有2到5秒之间的东西。 AJAX请求仅刷新会话中的时间戳。
如果用户点击页面顶部,现在,整个Facebook页面都会重新加载 - 您的应用也会得到一个新的已签名请求,其中已将状态设置为1。 看看你的会话>是以前的状态0?是?是时间戳最大值。 6-10秒?是?那么,最有可能的是用户在选项卡上喜欢该页面。
我讨厌用AJAX间隔污染网络的解决方案(在很多用户的大型网站上这会给你的服务器带来压力),但我想不出任何其他解决方案,因为没有别的方法可以跟踪如果用户仍在查看您的选项卡。如果间隔太高,用户将能够导航到墙壁或信息部分,并像那里的页面一样。如果他在此之后直接返回你的标签,你将无法追踪他是否完全离开标签......
另一个解决方案是监听body.unload事件并向服务器发出一个AJAX请求,告诉你用户已离开选项卡,但事件可能永远不会在某些浏览器或AJAX上被触发请求的速度不够快,无法在标签页卸载之前进行处理。另一方面,此解决方案会减少用户网络和服务器性能的资源。
这只是理论上的解决方案,必须首先进行测试!
答案 1 :(得分:0)
我认为这可以这样完成:
这应该有效,从未使用过,而且它没有任何好处。您可能需要在用户IP地址上添加限制,以防止增加计数器的不同/类似事件。
祝你好运,如果你找到更好的解决方案,请在这里发帖,这可能很有趣。