网页开发的阶段总结(二)

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);


  

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。