我正在尝试制作一款Facebook游戏并尝试复制我在其他Facebook游戏中常见的常用功能(对我的网站的调用以及作为加载栏的虚幻图像)。
我不熟悉Ajax或Javascript,所以请光临我。
该功能应该执行以下操作:
用户点击按钮
动画Gif出现(加载栏)
按钮更新用户状态
动画Gif消失
Facebook Canvas页面已更新
The code I currently have can be found at Pastebin
我无法考虑第2步和第4步。
我需要优化第5步。
澄清步骤5会发生什么。我有Box 1,其中包含我的统计数据。和盒子2有我的观点。我点击方框1.这应该用1分更新方框1,并更新方框2;减一点。 (单击框1,同时更新两个框)
我已成功完成此操作,但速度很慢。我想知道是否有替代方式可能比我目前正在做的更快。
非常感谢您的建议。
我找到了一种优化通话的快捷方式。我将使用第一个查询来获取大部分数据,而不是在更新时查询数据,而不是查询我已经查询过的数据。
答案 0 :(得分:0)
查看文档标记(XHTML)将极大地帮助您拥有元素和调用javascript函数。
对于第2步和第4步,我建议您使用visibility
属性而不是display
,或者在fb:js-string
中使用加载栏并在开始加载时使用elem.setInnerFbml
获得响应数据后,只需将其更新为新内容(在这种情况下,您不需要显式loading_finish
函数)。
在get_skillpoint
函数中,您在对象中设置参数,然后在您要发布到的URL中再次指定action
参数作为URL查询参数 - 您最终可能会得到一个值覆盖另一个,具体取决于您在服务器端访问这些值的方式。如果它们不相同,我建议为这两个参数使用不同的名称。另外,为什么要尝试发送单独的GET和POST变量集?您应该将所有内容放在POST中,只是省略URL查询字符串。我依稀记得过去以这种方式丢失数据(含糊地,请注意)。
如果你可以发布你的标记,我将用它解决问题的任何亮点来更新我的答案。它可能很慢,因为Facebook在FBJS和AJAX方面并不快速致盲。此外,返回的FBML必须在应用程序获取之前在FB代理中进行预处理,这会增加一些延迟;返回JSON并从中提取所需的数据要快一些,然后将相应的部分放入现有元素中或使用fb:js-string
。