PDA

View Full Version : مشکل آژاکس با ie



AbiriAmir
شنبه 24 مهر 1389, 16:49 عصر
سلام دوستان
ببخشید اگه سوالم تکراریه ولی هرچی تو سایت های ایرانی و خارجی سرچ کردم به نتیجه درست و حسابی نرسیدم
من در حال ساخت یک سایتم که وقتی وارد بخش فروشگاهش میشین 2 بخش آژاکس داره یعنی خود فروشگاه و سبد خرید.
حالا مشکل من اینه که تو اینترنت اکسپلورر سبد خرید لود میشه ولی خود فروشگاه نه
مشکل چیه و چطوری حل میشه؟
آدرس سایت: www.roboteronic.com (http://www.roboteronic.com)
(در ضمن اگه سایت رو باز کردین یه ارزیابی بکنین ببینید سرعت سایت چطوره... . آخه خودم احساس میکنم سرعتش یکم پایینه)
ممنون

binyaft
شنبه 24 مهر 1389, 16:55 عصر
اگر مشکل در IE هست به نظر من از Jquery استفاده کنید ، این همه هم درد سر نداره

AbiriAmir
شنبه 24 مهر 1389, 17:40 عصر
اگر مشکل در IE هست به نظر من از Jquery استفاده کنید ، این همه هم درد سر نداره
مرسی از پیشنهادتون ولی من jquery بلد نیستم
در ضمن jquery هم باهاش میشه آژاکس کار کرد؟
سخته یا آسون؟ آخه من یکم عجله دارم

binyaft
شنبه 24 مهر 1389, 17:54 عصر
جی کئوری در اصل برای کار با آژاکس طراحی شده
شما میتونید به صورت زیر یک صفحه رو در یک عنصر با ای دی myid لود کنید
$('#myid').load('file.txt');

AbiriAmir
شنبه 24 مهر 1389, 17:59 عصر
جی کئوری در اصل برای کار با آژاکس طراحی شده
شما میتونید به صورت زیر یک صفحه رو در یک عنصر با ای دی myid لود کنید
$('#myid').load('file.txt');
همین؟؟؟؟؟؟!!!!
:متعجب::متعجب::متعجب: :متفکر::متفکر: :متعجب::متعجب::متعجب:
مگه میشه؟
این کار رو تو جاوا اسکریپت با حداقل بیست خط انجام میدیم
حالا کدوم بهتره؟ جاوااسکریپت یا این جی کوئری؟
حالا چجوری تو اچ تی ام ال لودش کنم و فانکشنشو چجوری بنویسم؟
ممنون

AbiriAmir
شنبه 24 مهر 1389, 18:08 عصر
راستی دوست عزیز اگر جی کوئری برای این کار ساخته شده و بهتره چرا سایت هایی مثل جیمیل از جاوااسکریپت استفاده میکنن؟

binyaft
شنبه 24 مهر 1389, 18:28 عصر
جی کئوری یک فریم ورک مبتنی بر جاوا اسکریپت است که در همه مرورگر ها به صورت یکسان اجرا میشود
یک فایل با حجم 50 کیلوبایت است که به صفحه اضافه میشود
اتفاقا جیمیل هم از jQuery استفاده میکنه

AbiriAmir
شنبه 24 مهر 1389, 18:42 عصر
خب حالا میشه یکم راجع به نحوه کد نویسیش توضیح بدین؟
ممنون از این که وقتتون رو برای سوال من گذاشتین

binyaft
شنبه 24 مهر 1389, 19:07 عصر
خواهش میکنم
این تاپیک رو من خودم اموزش میدم ، البته فعلا به بخش اژاکس نرسیده ، شما نحوه کارش رو یاد بگیرید بعد با تابع load صفحه رو لود کنید
http://barnamenevis.org/forum/showthread.php?t=242469
مشکلی هم بود در خدمیتم

AbiriAmir
شنبه 24 مهر 1389, 20:25 عصر
ممنون
لطف کردید

AbiriAmir
شنبه 24 مهر 1389, 21:04 عصر
دوستان
جناب binyaft زحمت کشیدن و راجع به jquery توضیح دادن
حالا من علاوه بر این که میخوام jquery رو یاد بگیرم میخوام بدونم مشکل جاوااسکریپتی که من استفاده کردم چیه و چجوری میتونم حلش کنم (یکم محدودیت زمانی هم دارم و فعلا برای این پروژه نمیتونم jquery یاد بگیرم)
دوستان اگه اطلاعاتی دارن لطفا راهنمایی کنن
ممنون

binyaft
شنبه 24 مهر 1389, 21:19 عصر
نیاز به یادگیری کامل نیست
شما طرز کاری رو که با جاوا اسکریپت انجام میدیدبگید من براتون به صورت جی کئوری مینویسم ، البته الان یادم اومد که این سوالات مال بخش css , js هست ، تاپیک باید منتقل بشه اونجا :بامزه:

AbiriAmir
یک شنبه 25 مهر 1389, 14:35 عصر
نیاز به یادگیری کامل نیست
شما طرز کاری رو که با جاوا اسکریپت انجام میدیدبگید من براتون به صورت جی کئوری مینویسم ، البته الان یادم اومد که این سوالات مال بخش css , js هست ، تاپیک باید منتقل بشه اونجا :بامزه:
بله
درست میگید
ببخشید که اشتباها تاپیک رو اینجا باز کردم
خب در هر صورت ممنون که پاسخ دادید
کد من به صورت زیر هست:



function AjaxRequest() {
try{ var xmlhttp = new XMLHttpRequest(); }
catch(err1)
{
var ieXmlHttpVersions = new Array();
ieXmlHttpVersions[ieXmlHttpVersions.length] = "MSXML2.XMLHttp.7.0";
ieXmlHttpVersions[ieXmlHttpVersions.length] = "MSXML2.XMLHttp.6.0";
ieXmlHttpVersions[ieXmlHttpVersions.length] = "MSXML2.XMLHttp.5.0";
ieXmlHttpVersions[ieXmlHttpVersions.length] = "MSXML2.XMLHttp.4.0";
ieXmlHttpVersions[ieXmlHttpVersions.length] = "MSXML2.XMLHttp.3.0";
ieXmlHttpVersions[ieXmlHttpVersions.length] = "MSXML2.XMLHttp";
ieXmlHttpVersions[ieXmlHttpVersions.length] = "Microsoft.XMLHttp";

var i;
for (i=0; i < ieXmlHttpVersions.length; i++) {
try
{
var xmlhttp = new ActiveXObject(ieXmlHttpVersions[i]);
break;
}
catch (err2) { return false; }
}
}
return xmlhttp;
}



function loadbasket(uname) {
// var field = document.getElementById("ajaxField").value;
var response = document.getElementById("ajaxshop");
var shloading = document.getElementById("shop_loading");


//shloading.style.display='';


var xmlHttp = AjaxRequest();
xmlHttp.open("GET" , "ajaxshop.php?task=loadbasket&user=" + uname + "&noCache="+ (+new Date));
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState == 1)
{
shloading.style.display = '';
response.innerHTML = "";
}

if(xmlHttp.readyState == 4 && xmlHttp.status == 200)
{
response.innerHTML = xmlHttp.responseText;
shloading.style.display='none';
}
}
xmlHttp.send(null);
}


function addtocart(id, uname) {

var response = document.getElementById("ajaxshop");
var shloading = document.getElementById("shop_loading");
var xmlHttp = AjaxRequest();
xmlHttp.open("GET" , "ajaxshop.php?task=addtocart&id=" + id, true);
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState == 1)
{

response.innerHTML = '';
shloading.style.display = '';

}

if(xmlHttp.readyState == 4 && xmlHttp.status == 200)
loadbasket(uname);//response.innerHTML = xmlHttp.responseText;
}
xmlHttp.send(null); ;


}



function deletefromcart(id, uname) {

var response = document.getElementById("ajaxshop");
var shloading = document.getElementById("shop_loading");
var xmlHttp = AjaxRequest();
xmlHttp.open("GET" , "ajaxshop.php?task=delfromcart&id=" + id, true);
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState == 1)
{

response.innerHTML = '';
shloading.style.display='';

}


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

loadbasket(uname);//response.innerHTML = xmlHttp.responseText;

}
xmlHttp.send(null); ;

}


function ddelete(id, uname) {
if(confirm("آیا از حذف این محصول از سبد خرید خود مطمئن هستید؟ عملیات حذف برگشت پذیر نیست"))
{
var response = document.getElementById("ajaxshop");
var shloading = document.getElementById("shop_loading");
var xmlHttp = AjaxRequest();
xmlHttp.open("GET" , "ajaxshop.php?task=delete&id=" + id, true);
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState == 1)
{

response.innerHTML = '';
shloading.style.display='';

}

if(xmlHttp.readyState == 4 && xmlHttp.status == 200)
loadbasket(uname);//response.innerHTML = xmlHttp.responseText;
}
xmlHttp.send(null); ;

loadbasket(uname);
}
}


function clclear(uname) {
if(confirm("آیا از حذف تمامی محصولات از سبد خرید خود مطمئن هستید؟ عملیات حذف برگشت پذیر نیست"))
{
var response = document.getElementById("ajaxshop");
var shloading = document.getElementById("shop_loading");
var xmlHttp = AjaxRequest();
xmlHttp.open("GET" , "ajaxshop.php?task=clear", true);
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState == 1)
{

response.innerHTML = '';
shloading.style.display='';

}

if(xmlHttp.readyState == 4 && xmlHttp.status == 200)
loadbasket(uname);//response.innerHTML = xmlHttp.responseText;
}
xmlHttp.send(null); ;

loadbasket(uname);
}
}


function loadpage(page, caid) {
// var field = document.getElementById("ajaxField").value;
var response = document.getElementById('ssss_' + caid);
// var prloading = document.getElementById("pr_loading");


//shloading.style.display='';


var xmlHttp = AjaxRequest();
xmlHttp.open("GET" , "ajaxproducts.php?cat=" + caid + "&page=" + page, true);
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState == 1)
{
//prloading.style.display = '';
response.innerHTML = "<img src='template/new/img/loading.gif' alt='در حال بارگزاري'>";
}

if(xmlHttp.readyState == 4 && xmlHttp.status == 200)
{
//prloading.style.display='none';
response.innerHTML = xmlHttp.responseText;
}
}
xmlHttp.send(null);
}


function loadcat(page, caid) {
// var field = document.getElementById("ajaxField").value;
var response = document.getElementById("ssss_" + caid);
// var prloading = document.getElementById("pr_loading");

var pp = page;
var cc = caid;
//var response = document.getElementById("ssss_" + cc);
//shloading.style.display='';


var xmlHttp = AjaxRequest();



xmlHttp.open("GET" , "ajaxcat.php?cat=" + cc + "&page=" + pp + "&noCache=" + (+new Date));
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState == 1)


response.innerHTML = "<img src='template/new/img/loading.gif' alt='در حال بارگزاري'>";
//prloading.style.display = '';



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

response.innerHTML = xmlHttp.responseText;
//prloading.style.display='none';
}

}
xmlHttp.send(null);
}

binyaft
یک شنبه 25 مهر 1389, 15:51 عصر
منظورم این نبود که کد رو بزارید اینجا ، شما روش بارگذاری صفحات توسط اژاکس رو به من بگید من راهنماییتون میکنم ، مثلا نام صفحه ای که میخواد بار گذاری بشه رو از کجا میگیرین؟

AbiriAmir
یک شنبه 25 مهر 1389, 18:43 عصر
یک نمونش:


function AjaxRequest() {
try{ var xmlhttp = new XMLHttpRequest(); }
catch(err1)
{
var ieXmlHttpVersions = new Array();
ieXmlHttpVersions[ieXmlHttpVersions.length] = "MSXML2.XMLHttp.7.0";
ieXmlHttpVersions[ieXmlHttpVersions.length] = "MSXML2.XMLHttp.6.0";
ieXmlHttpVersions[ieXmlHttpVersions.length] = "MSXML2.XMLHttp.5.0";
ieXmlHttpVersions[ieXmlHttpVersions.length] = "MSXML2.XMLHttp.4.0";
ieXmlHttpVersions[ieXmlHttpVersions.length] = "MSXML2.XMLHttp.3.0";
ieXmlHttpVersions[ieXmlHttpVersions.length] = "MSXML2.XMLHttp";
ieXmlHttpVersions[ieXmlHttpVersions.length] = "Microsoft.XMLHttp";

var i;
for (i=0; i < ieXmlHttpVersions.length; i++) {
try
{
var xmlhttp = new ActiveXObject(ieXmlHttpVersions[i]);
break;
}
catch (err2) { return false; }
}
}
return xmlhttp;
}



function loadbasket(uname) {
// var field = document.getElementById("ajaxField").value;
var response = document.getElementById("ajaxshop");
var shloading = document.getElementById("shop_loading");


//shloading.style.display='';


var xmlHttp = AjaxRequest();
xmlHttp.open("GET" , "ajaxshop.php?task=loadbasket&user=" + uname + "&noCache="+ (+new Date));
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState == 1)
{
shloading.style.display = '';
response.innerHTML = "";
}

if(xmlHttp.readyState == 4 && xmlHttp.status == 200)
{
response.innerHTML = xmlHttp.responseText;
shloading.style.display='none';
}
}
xmlHttp.send(null);
}



یه فانکشنه که صفحه زیر رو باز میکنه:

ajaxshop.php?task=loadbasket&user=" + uname
که uname یک ورودی تابع هست
و نتیجه رو در div با آی دی ajaxshop لود میکنه و هنگام لود شدن display استایل div با آی دی shop_loading رو برابر '' قرار میده و پس از لود کامل display اونو برابر none قرار میده
ممنون