天天看點

網頁開發的階段總結(二)

1、現在的浏覽器都比較智能化,當資料庫的資料有變化時,不會讀取網頁上的緩存資料,通過以下代碼實作資料庫的通路:

var thePage = 'servesql.php';

myRand = parseInt(Math.random()*9999999999999999);

var theURL = thePage +"?rand="+myRand;

xmlhttp.open("GET", theURL ,true);

xmlhttp.onreadystatechange = GetXmlTextByTagName;

結果是無法資料到資料庫的内容,可能是浏覽器不支援這種方式,在chrome, 核心版本為IE6.0的Internet Explorer上都不支援這種方式。

             參考網址:http://www.w3school.com.cn/ajax/ajax_xmlhttprequest_send.asp

2、在WAMP上的配置上,調試php時能讓在網頁上顯示調試錯誤:

      在php.ini啟動這兩項:display_errors = On  && error_reporting = E_ALL

3、php.ini-production 與 php.ini-development的差別:

      如果将php.ini-production改成php.ini時,預設調試資訊在網頁上是不顯示的,是以如果是用php進行開發調試時最好還是将 php.ini-development改為php.ini。

4、pdo連接配接資料庫後關閉方法:

      $pdo = new PDO($dsn);

      $pdo = null;//這樣就關閉了

5、錯誤:Fatal error: Call to a member function fetchAll() on a non-objec

      一般是連接配接資料庫的位址出現錯誤或資料庫裡無資料。

6、錯誤:error on line 1 at column 1: Document is empty。

網頁開發的階段總結(二)

     當用php寫入xml檔案時,不允許在header()函數前有輸出功能 ,例:var_dump($sth),不然就将header('Content-Type: text/xml')中的“text/xml”改成text/json。

     <?php 
 $dbh = new PDO("sqlite:upsdata.dat", null, null);   
 $sth = $dbh->query('SELECT * FROM t_ups_rundata');
var_dump($sth);
$result = $sth->fetchAll();
$i=0;
$CountArray=0;
foreach($result[0] as $x=>$x_value)
{
  if($i%2==0)
    { 
      $UPSData[$CountArray++]=$x_value;
     }
  $i++;
}
//print_r ($UPSData);
header('Content-Type: text/xml');
echo "<?xml version='1.0' encoding='utf-8'?>";
echo "<clock>";    
echo   "<timestring>$UPSData[3]</timestring>";  
echo "</clock>";
$dbh = null;
 ?>

7、在使用ajax時 xmlHttp=new XMLHttpRequest()與  xmlHttp.open ()、xmlHttp.send()隻能在同一個檔案實作。

8、不同浏覽器解析xml檔案有不同的方式:http://www.jb51.net/article/20876.htm

9、當寫的網頁檔案在IE6.0上運作時,在文法上沒錯誤,而在操作有錯誤時會直接讓浏覽器崩潰。

10、問題:在ie6.0上沒實作資料的動态重新整理,通過打開另一個網頁才能實作資料的重新整理。

      解決方法:一般浏覽器的緩存設定問題,  "每次通路此頁時檢查"這個選項沒勾上。勾選過程:工具->Internet選項->設定->每次通路此頁時檢查。

 IE緩存設定四種方式介紹:http://zhidao.baidu.com/link?url=57IkxNpQIGICRCL5r6l5uFSfBwmTqbMA8yj0xCxtfF0S38Am_lrErCuXh8oTKdyn5wTbcdtbU722If6MvnA_BK

11、    

      // code for IE7+, Firefox, Chrome, Opera, Safari

  xmlHttp=new XMLHttpRequest();

  var url="responsexml.php";

  xmlHttp.open("GET",url,false);

  xmlHttp.send(null);

 xmlHttp.onreadystatechange=getValue(xmlHttp);

     當xmlHttp.open("GET",url,false);  xmlHttp.send(null);這兩個函數放在onreadystatechange 後面時會出現資料讀取不到,頁面無資料顯示。具體原因沒找到。

12、  IE5、IE6的ajax的操作方法:

          // code for IE6, IE5

  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");

 var url="responsexml.php"; 

xmlHttp.onreadystatechange=function()

 {

if (xmlHttp.readyState==4  && xmlHttp.status==200)

{

   xmlDoc=xmlHttp.responseXML; 

nodes=xmlDoc.documentElement.childNodes;

InputVoltage.innerHTML = nodes.item(3).text;

OutputVoltage.innerHTML = nodes.item(7).text;

OutputMinVoltage.innerHTML = nodes.item(34).text;

OutputMaxVoltage.innerHTML = nodes.item(33).text;

Frequency.innerHTML = nodes.item(13).text;

xmlHttp = null;

}

 }

xmlHttp.open("GET",url,true);

xmlHttp.send(null);