我一直在旅遊和開發過去幾周。 我正在開發的網站運行良好。你將如何調試此javascript問題?
然後,有一天,我連接到一個網絡和頁面看起來很好,但事實證明,JavaScript沒有運行。我檢查了螢火蟲,並沒有錯誤,因爲我懷疑可能沒有加載腳本(我使用的是谷歌api的jQuery和jQuery UI,以及加載谷歌地圖api和fbconnect)。 我會懷疑,如果問題是與這些頁面中的一個不加載我會得到一個錯誤,但沒有什麼。
想到也許我沒有正確連接或什麼東西,我重新連接到網絡,甚至重新啓動我的電腦,以及試圖運行本地版本。我什麼也沒得到。 本地版本沒有運行也暗示我,它是一個外部JavaScript導致問題的加載。
我讓它通過一個奇怪的網絡。不幸的是,現在我距離100英里遠。
今天,我的兄弟給我發了一封電子郵件,說他在機場的網絡不會加載我的網頁。同樣的問題。一切都佈置得恰到好處,部分佈局設置在Javascript中,所以很明顯,JavaScript正在運行。
他也沒有錯誤。當然,他上了飛機,現在他不再在機場了。現在,該網站在他的電腦上工作(我沒有改變任何東西)。
你究竟怎麼去弄清楚在這種情況下發生了什麼?這可能是12個左右的網絡中的兩個。但我不知道我會如何找到一個不起作用的網絡(並且住在一個小鎮上,我可能很難找到一個不起作用的網絡)。
任何想法? 該網站仍然在開發中,所以我寧願不發佈鏈接(但可能在幾天內)。 我可以看到不能正常工作的是在加載時調用的JavaScript函數,並且是點擊。所以我認爲這是一個JavaScript問題,但沒有錯誤。
如果我能找到並坐在其中一個網絡上,這不會是一個巨大的問題,但我不能。那麼你會怎麼做?
編輯--------------------------------------------- ------------- 第一個沒有被調用的函數(s - 它們的鏈接)在下面。 由於沒有進行調用,我已經將.ajax調用的代碼剪掉了。
function getResultsFromForm(){
jQuery('form#filterList input.button').hide();
var searchAddress=jQuery('form#filterList input#searchTxt').val();
if(searchAddress=='' || searchAddress=='<?php echo $searchLocation; ?>'){
mapShow(20, -40, 0, 'areaMap', 2);
jQuery('form#filterList input.button').show();
return;
}
if (GBrowserIsCompatible()) {
var geo = new GClientGeocoder();
geo.setBaseCountryCode(cl.address.country);
geo.getLocations(searchAddress, function (result)
{
if(!result.Placemark && searchAddress!='<?php echo $searchLocation; ?>'){
jQuery('span#addressNotFound').text('<?php echo $addressNotFound; ?>').slideDown('slow');
jQuery('form#filterList input.button').show();
} else {
jQuery('span#addressNotFound').slideUp('slow').empty();
jQuery('span#headerLocal').text(searchAddress);
var date = new Date();
date.setTime(date.getTime() + (8 * 24 * 60 * 60 * 1000));
jQuery.cookie('address', searchAddress, { expires: date});
var accuracy= result.Placemark[0].AddressDetails.Accuracy;
var lat = result.Placemark[0].Point.coordinates[1];
var long = result.Placemark[0].Point.coordinates[0];
lat=parseFloat(lat);
long=parseFloat(long);
var getTab=jQuery('div#tabs div#active').attr('class');
jQuery('div#tabs').show();
loadForecast(lat, long, getTab, 'true', 0);
var zoom=zoomLevel();
mapShow(lat, long, accuracy, 'areaMap', zoom);
}
});
}
}
function zoomLevel(){
var zoomarray= new Array();
zoomarray=jQuery('span.viewDist').attr('id');
zoomarray=zoomarray.split("-");
var zoom=zoomarray[1];
if(zoom==''){
zoom=5;
}
zoom=parseFloat(zoom);
return(zoom);
}
function loadForecast(lat, long, type, loadForecast, page){
jQuery('div#holdForecast').empty();
var date = new Date();
var d = date.getDate();
var day = (d < 10) ? '0' + d : d;
var m = date.getMonth() + 1;
var month = (m < 10) ? '0' + m : m;
var year='2009';
toDate=year+'-'+month+'-'+day;
var genre=jQuery('span.genreblock span#updateGenre').html();
var numDays='';
var numResults='';
var range=jQuery('span.viewDist').attr('id');
var dateRange = jQuery('.updateDate').attr('id');
jQuery('div#holdShows ul.showList').html('<li class="show"><div class="showData"><center><img src="../hwImages/loading.gif"/></center></div></li>');
jQuery('div#holdShows ul.'+type+'List').livequery(function(){
jQuery.ajax({
type: "GET",
url: "processes/formatShows.php",
data: "output=&genre="+genre+"&numResults="+numResults+"&date="+toDate+"&dateRange="+dateRange+"&range="+range+"&lat="+lat+"&long="+long+'&page='+page,
success: function(response){
編輯2 ------------------------------------- ----------------------------------------
請注意,問題不在於我無法加載網站,網站在大多數連接上都能正常工作,但有時網站無法正常工作,並且沒有發生錯誤,也沒有任何更改。我的兄弟今天早些時候無法運行它,而我沒有問題,所以這與他的位置/網絡有關。然而,頁面加載,他有一個連接,這是他第一次訪問該網站,所以沒有任何兌現。和幾天前我遇到問題時一樣。我沒有改變任何東西,我到了另一個網絡,一切正常。
讓我看看代碼! – 2009-03-03 01:23:26
啊!問題的一部分。你真的要通過900行代碼,我不知道起點嗎?如果是這樣,我會發布它,但我有點懷疑。 我將編輯以顯示未被調用的第一個函數。 – pedalpete 2009-03-03 01:29:35