Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.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
Javascript 如何设置刷新Twitter嵌入时间线前的超时? 如何设置刷新Twitter嵌入时间线之前的超时?_Javascript_Jquery_Html_Performance_Twitter - Fatal编程技术网

Javascript 如何设置刷新Twitter嵌入时间线前的超时? 如何设置刷新Twitter嵌入时间线之前的超时?

Javascript 如何设置刷新Twitter嵌入时间线前的超时? 如何设置刷新Twitter嵌入时间线之前的超时?,javascript,jquery,html,performance,twitter,Javascript,Jquery,Html,Performance,Twitter,我需要更改超时时间来更新我网站上的twitter时间线。 目前,twitterapi每秒都会发出ajax请求来更新时间线。 但在JS(换句话说:IE)引擎速度较慢的浏览器上,会导致浏览器速度变慢或有时导致浏览器停止工作 为了解决这个问题,我想在刷新Twitter时间线之前设置超时 我在API上找不到任何关于如何做到这一点的参考资料 我正在使用以下JS代码导入时间线: <script>!function(d,s,id){var js,fjs=d.getElementsByTagName

我需要更改超时时间来更新我网站上的twitter时间线。 目前,twitterapi每秒都会发出ajax请求来更新时间线。 但在JS(换句话说:IE)引擎速度较慢的浏览器上,会导致浏览器速度变慢或有时导致浏览器停止工作

为了解决这个问题,我想在刷新Twitter时间线之前设置超时

我在API上找不到任何关于如何做到这一点的参考资料

我正在使用以下JS代码导入时间线:

<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p='https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p "://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
!函数(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p='https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p://platform.twitter.com/widgets.js;fjs.parentNode.insertBefore(js,fjs);}(文档,“脚本”,“twitter wjs”);
为了显示时间线,我使用类似HTML的代码,如下所示:

<div class="box-twitter">
<p class="title-box"><span class="icon"></span>WHAT'S HAPPENING ON TWITTER </p>
<a class="twitter-timeline"  href="https://twitter.com/search?q=from:dev include:retweets"  data-widget-id="394816085830025216"><img src="preloader.gif" style="margin-left: 132px; margin-top: 20px;"/></a>

推特上发生了什么

有人知道我如何解决这个问题吗


谢谢。

我相信设置
推特限制可以是一种选择

Tweet limit:
要将时间线的大小固定为预设数量的Tweet,请使用具有1到20条Tweet之间任意值的
数据Tweet limit=“5”属性。时间线将呈现时间线中指定数量的推文,扩展小部件的高度以显示所有推文而不滚动。
由于小部件大小固定,因此使用此选项时不会轮询更新。

e、 g

然后,如果需要,您可以手动更新您的小部件,方法是删除它们并重新插入html,然后调用


twttr.widgets.load()

Tweet limit:
要将时间线的大小固定为预设数量的Tweet,请使用具有1到20条Tweet之间任意值的
数据Tweet limit=“5”属性。时间线将呈现时间线中指定数量的推文,扩展小部件的高度以显示所有推文而不滚动。
由于小部件大小固定,因此使用此选项时不会轮询更新。

e、 g

然后,如果需要,您可以手动更新您的小部件,方法是删除它们并重新插入html,然后调用


twttr.widgets.load()

在Twitter提供的widget.js文件上执行反向工程后。 我发现了一个名为“schedulePolling”的方法,代码如下:

schedulePolling: function(e) {
var t = this;
if (this.pollInterval === null) return;
e = twttr.widgets.poll || e || this.pollInterval || 1e4, e > -1 && window.setTimeout(function() {
    this.isUpdating || t.update(), t.schedulePolling()
}, e)
为了增加超时时间,我在这段代码中添加了一个固定值

schedulePolling: function(e) {
var t = this;
if (this.pollInterval === null) return;
e = 60000 || e || this.pollInterval || 1e4, e > -1 && window.setTimeout(function() {
    this.isUpdating || t.update(), t.schedulePolling()
}, e)}
我已经替换了代码
twttr.widgets.poll
当时我想要“60000”

完成此操作后,使用自定义代码保存widget.js

因此,在这个定制之后,我修改了导入Twitter API的行,将默认值
//platform.Twitter.com/widgets.js
更改为我的定制文件
my site/js/customized_widgets.js
的路径

这就是结果

<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p='https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"/my-site/js/customized_widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
!函数(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p='https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+“/my site/js/customized_widgets.js”;fjs.parentNode.insertBefore(js,fjs);}(文档,“脚本”,“twitter wjs”);

在Twitter提供的widget.js文件上执行反向工程后。 我发现了一个名为“schedulePolling”的方法,代码如下:

schedulePolling: function(e) {
var t = this;
if (this.pollInterval === null) return;
e = twttr.widgets.poll || e || this.pollInterval || 1e4, e > -1 && window.setTimeout(function() {
    this.isUpdating || t.update(), t.schedulePolling()
}, e)
为了增加超时时间,我在这段代码中添加了一个固定值

schedulePolling: function(e) {
var t = this;
if (this.pollInterval === null) return;
e = 60000 || e || this.pollInterval || 1e4, e > -1 && window.setTimeout(function() {
    this.isUpdating || t.update(), t.schedulePolling()
}, e)}
我已经替换了代码
twttr.widgets.poll
当时我想要“60000”

完成此操作后,使用自定义代码保存widget.js

因此,在这个定制之后,我修改了导入Twitter API的行,将默认值
//platform.Twitter.com/widgets.js
更改为我的定制文件
my site/js/customized_widgets.js
的路径

这就是结果

<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p='https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"/my-site/js/customized_widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
!函数(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p='https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+“/my site/js/customized_widgets.js”;fjs.parentNode.insertBefore(js,fjs);}(文档,“脚本”,“twitter wjs”);

我不知道
twitterapi
加载的时间线每秒刷新一次。这会导致
IE10
IE11
出现性能问题?我只在IE7、IE8和IE9上发现了此性能问题。我没有在IE10和IE11上进行测试。如果我的答案看起来不能解决您的问题,我将暂时删除。。但这让我认为,并不是推特时间线的
更新或轮询
造成了问题,因为设置
数据推特限制
应该停止对更新的轮询
完全
。我不知道
推特api
加载的时间线每秒刷新一次。这会导致
IE10
IE11
出现性能问题?我只在IE7、IE8和IE9上发现了此性能问题。我没有在IE10和IE11上进行测试。如果我的答案看起来不能解决您的问题,我将暂时删除。。但这让我认为,并不是推特时间线的
更新或轮询造成了问题,因为设置
数据推特限制应该完全停止对更新的轮询
。在另一个页面中,此性能问题仍然存在。这个问题是因为twitter API发出的多次请求给浏览器的JS引擎造成了开销。@SamuelFreitas根据twitter的说法这很奇怪,如果你使用这个选项,小部件将不会轮询更新。我得在我这边测试一下,看看有什么发现。没错。但在我的页面上有三个时间表