将标题标签与数据库连接并使其自动刷新,就像在facebook标题中一样

时间:2012-06-26 04:28:25

标签: php javascript ajax

我的网站上有关于标题标记<title></title>的问题。我想将它连接到数据库,以便我的网页标题的价值来自数据库,它的工作原理。但是当我想让我的网页标题(不是整页)自动刷新时,又出现了另一个问题。我找到了来自ajax的脚本,但它并没有真正成功,就像在facebook标签中一样,只是假设,我从另一个浏览器(即Opera等)输入新数据,然后我回到我的主浏览器(Firefox)标题标记根本不会更改,或者不会自动刷新并更改值。我真的需要你帮助的人..!?这是我试过的剧本..

setInterval(function() {
$.ajax({
  url: '{BASE_URL}/system/back-end/main.php',
  url: 'main.html',
  //data: {name: 'username', password: 'userpass'},
  success: function() { document.title = '$value';},
  dataType: 'text'
});
}, 1000);

function getXHR() { 
  if (window.XMLHttpRequest) {
    // Chrome, Firefox, IE7+, Opera, Safari
    return new XMLHttpRequest(); 
  } 
  // IE6
  try { 
    // The latest stable version. It has the best security, performance, 
    // reliability, and W3C conformance. Ships with Vista, and available 
    // with other OS's via downloads and updates. 
    return new ActiveXObject('MSXML2.XMLHTTP.6.0');
  } catch (e) { 
    try { 
      // The fallback.
      return new ActiveXObject('MSXML2.XMLHTTP.3.0');
    } catch (e) { 
      alert('This browser is not AJAX enabled.'); 
      return null;
    } 
  } 
}
function setPageTitle(newValue) {
  document.title = '$value';
}

function messageCountAsPageTitle(msgCount) {
  // TODO: determine where 'another text in the page title' should be defined
  msgCount = '{PESAN_ENTRY} {BERKAS} {BERKAS}';
  setPageTitle('(' + msgCount + ') - another text in the page title');
}
<!--</tpl:tmpl>

function getMessageCount(callback) {
  var url = 'main.html?' + 'main.php?' + (new Date()).getTime(), // prevent caching
    xhr = getXHR();
  xhr.onreadystatechange = function() {
    if (xhr.readyState == 4 && xhr.status == 200) {
      callback(xhr.responseText);
    }
  };
  xhr.timeout = 2000; // Set the timeout to be less than the frequency we call this
  xhr.open("GET", url, true);
  xhr.send();
}
setInterval(function() {getMessageCount(messageCountAsPageTitle);}, 3000);

请帮帮忙?

1 个答案:

答案 0 :(得分:0)

如果您正在使用jQuery(最高$ .ajax()调用),那么您应该只使用它,而不是底部。确保在HTML源代码中包含jQuery(关于如何执行此操作的google jQuery)

您需要创建一个返回新标题的php文件。

// script.php
echo 'My New Title';
exit();

然后在源代码中使用jQuery访问新标题:

setInterval(function() { 
  $.ajax({ 
     url: 'http://UrlToGetTheTitleFrom/script.php', 
     success: function(data) { document.title = data; }, 
     dataType: 'text' 
  }); 
}, 10000); 

(注意:SetInterval每秒都有1000个 - 这是毫秒。很确定你不希望它快速锤击你的服务器!)