jQuery txt文件内容显示/隐藏
我有一个脚本,可以从文本文件加载信息,并每隔x秒重新加载该文件,因此每次更新该文本文件时,该脚本都是可见的 但是,是否有可能显示div x秒,然后将其隐藏。当文本文件更改内容时,它会再次弹出几秒钟,然后再次隐藏,依此类推 我现在拥有的:jQuery txt文件内容显示/隐藏,jquery,text-files,show-hide,Jquery,Text Files,Show Hide,我有一个脚本,可以从文本文件加载信息,并每隔x秒重新加载该文件,因此每次更新该文本文件时,该脚本都是可见的 但是,是否有可能显示div x秒,然后将其隐藏。当文本文件更改内容时,它会再次弹出几秒钟,然后再次隐藏,依此类推 我现在拥有的: function readTxtfile() { jQuery.ajax({ url: "textfile.txt", dataType: "text", success: function(dat
function readTxtfile() {
jQuery.ajax({
url: "textfile.txt",
dataType: "text",
success: function(data) {
var lines = data.split(','),
htmlLines = '<p>' + lines.join('</p><p>') + '</p>';
jQuery("#info_container .txt").html(htmlLines);
setTimeout(readTxtfile, 5000);
}
});
}
jQuery(document).ready(function() {
readTxtfile();
});
函数readTxtfile(){
jQuery.ajax({
url:“textfile.txt”,
数据类型:“文本”,
成功:功能(数据){
变量行=数据。拆分(','),
HTMLINES=''+行。连接('')+'';
jQuery(“#info_container.txt”).html(html行);
setTimeout(readTxtfile,5000);
}
});
}
jQuery(文档).ready(函数(){
readTxtfile();
});
使用
.show()
和.hide()
函数readTxtfile(){
jQuery.ajax({
url:“textfile.txt”,
数据类型:“文本”,
成功:功能(数据){
变量行=数据。拆分(','),
HTMLINES=''+行。连接('')+'';
var元素=jQuery(“#info_container.txt”)
if(htmlLines==element.html()){
元素。隐藏();
}否则{
html(htmlLines.show();
}
setTimeout(readTxtfile,5000);
});
}
我建议您使用setInterval而不是setTimeout,因为您每X毫秒运行一次请求。您可以这样做:
var-TIME-TO-SHOW=2000;
请求的var时间=1000;
var currentContent=null;
var hideTimeout=null;
函数readTxtfile(){
var数据=$(“#inputxt”).val();
如果(currentContent==数据){
//如果读取的内容与实际内容相同,则不执行任何操作
返回;
}
currentContent=数据;
变量行=data.split(',');
HTMLINES=''+行。连接('')+'';
$(“#info_container.txt”).html(html);
$(“#info_container.txt”).show();//在编辑的文本上显示div
如果(隐藏超时){
//这将防止div被超时隐藏,超时
//已经开始了
clearTimeout(隐藏超时);
}
hideTimeout=setTimeout(函数(){
$(“#info_container.txt”).hide();
hideTimeout=null;
},TIME_TO_SHOW);//在2秒后隐藏div
}
$(文档).ready(函数(){
//每秒钟检查一次修改
var interval=setInterval(readTxtfile,请求的时间);
});
试验
Hi Joe,这不起作用?当我更改txt文件时,内容不会在x秒后弹出并再次隐藏?嗨,当你加载页面时,txt内容将隐藏,这很好。但当我更改txt文件的内容时,它不会再次弹出?(仅在重新加载页面时)这很好用,thnx!也许这个小功能可能吗?当你保存文本文件时,你几乎在同一时间保存了3次,请求的时间是7秒,显示的时间是6秒,那么他只显示文本文件的第三次保存,而不是第一次和第二次保存。有可能是jQuery保存了它还是什么?并首先显示第一次保存,然后显示第二次保存,然后显示第三次保存?请求之间的延迟为7秒,这是不可能的,因为jquery仅在7秒后读取文件,如果文件在此期间发生更改,则无法显示在这几秒内所做的更改。最简单的方法是为requ设置较低的延迟est例如:1秒。但当我将其设置为1秒时,它们之间没有pauze。这一定像警报。例如:文本文件更改-文本显示5秒并隐藏。然后第二个将弹出,依此类推。(因此,一个更改不会干扰另一个更改,而是在动画完成后等待。)这可能有点棘手,因为您必须处理一个编辑队列,并在指定的时间内按顺序显示它们。我将尽可能添加一个使用此功能剪切的新代码,同时您应该为请求设置较低的延迟,然后考虑一种处理此功能的方法:我将创建一个数组,其中我将dd从请求中获得的所有编辑,然后我将使用另一个setInterval
,这样您就可以在5秒钟内显示内容的第一个版本,之后将显示第二个版本,然后在5秒钟后显示第三个版本,依此类推。。。
function readTxtfile() {
jQuery.ajax({
url: "textfile.txt",
dataType: "text",
success: function(data) {
var lines = data.split(','),
htmlLines = '<p>' + lines.join('</p><p>') + '</p>';
var element = jQuery("#info_container .txt")
if ( htmlLines == element.html()) {
element.hide();
} else {
element.html(htmlLines).show();
}
setTimeout(readTxtfile, 5000);
});
}