PDA

View Full Version : سوال: نمایش متن یک txt در سایت



elybelbely
چهارشنبه 11 شهریور 1394, 14:33 عصر
با سلام
می خواستم کاری کنم که سایت متنی که در یک فایل txt هست رو نمایش بده.
برای این کار باید چه دستوری بنوسم؟
اگه با جی کوئزی بشه این کار رو کرد خیلی بهتره
پیشاپیش ممنون

arenaw
چهارشنبه 11 شهریور 1394, 15:05 عصر
سلام. اگه میخواهید مستقیم نمایش بدید:


$("#element").load("file.txt");


اگه قصد دارید اطلاعات رو توی متغیر بریزید و ...:

$.get('file.txt', function(data){
alert(data);
});

elybelbely
چهارشنبه 11 شهریور 1394, 15:25 عصر
سلام. اگه میخواهید مستقیم نمایش بدید:


$("#element").load("file.txt");


اگه قصد دارید اطلاعات رو توی متغیر بریزید و ...:

$.get('file.txt', function(data){
alert(data);
});


ممنون حالا می خوام بدون رفرش صفحه هر لحظه به صورت اتوماتیک اگه txt تغییر کرد،متن هم تغییر کنه.چطور میشه این کارو انجام داد؟

arenaw
چهارشنبه 11 شهریور 1394, 16:49 عصر
برای این کار می‌تونید یه تایمر بذارید که مثلا هر 1 دقیقه، متن رو از اول بخونه.

setInterval(
function readMyFile(){
// reading the file and ...
},
60000 /* 60 secs */
);

elybelbely
چهارشنبه 11 شهریور 1394, 17:07 عصر
برای این کار می‌تونید یه تایمر بذارید که مثلا هر 1 دقیقه، متن رو از اول بخونه.

setInterval(
function readMyFile(){
// reading the file and ...
},
60000 /* 60 secs */
);



یعنی به این صورت؟:
(document).ready(function() { setInterval(
function readMyFile(){
$("#div").load("txt.txt");
},
60000 /* 60 secs */
);

});

ولی این کد کار نمی کنه!

arenaw
چهارشنبه 11 شهریور 1394, 17:21 عصر
ولی این کد کار نمی کنه!
1- این کدی که شما گذاشتید، اولش یه $ کم داره. (که شاید برای کپی‌پیست بوده باشه، به هرحال...)
2- این کد به صورت لوکال اجرا نمیشه. شما باید این کد رو مستقیم رو سرور، و یا یه سرور لوکال مثل wamp و اینها نصب کنید و اونجا امتحان کنید.
3-بعضی مرورگرا، اگه شما مثلا salam رو به sagam تغییر بدین، یک مقدار کندتر حافظه کش رو پاک میکنن و جا به جا میکنن. چون تغییری توی سایز فایل داده نشده و فقط محتوا عوض شده. (یعنی بعد از تغییر فایل توسط شما، براوزر همچنان با مقایسه سایز فایل با سایز فایل قبلی فکر میکنه فایل هنوز عوض نشده و از حافظه کش (محتوای قبلی) اون رو لود میکنه).

elybelbely
چهارشنبه 11 شهریور 1394, 17:30 عصر
1- این کدی که شما گذاشتید، اولش یه $ کم داره. (که شاید برای کپی‌پیست بوده باشه، به هرحال...)
2- این کد به صورت لوکال اجرا نمیشه. شما باید این کد رو مستقیم رو سرور، و یا یه سرور لوکال مثل wamp و اینها نصب کنید و اونجا امتحان کنید.
3-مرورگرا، اگه شما مثلا salam رو به sagam تغییر بدین، یک مقدار کندتر حافظه کش رو پاک میکنن و جا به جا میکنن. چون تغییری توی سایز فایل داده نشده و فقط محتوا عوض شده. (یعنی بعد از تغییر فایل توسط شما، براوزر همچنان با مقایسه سایز فایل با سایز فایل قبلی فکر میکنه فایل هنوز عوض نشده و از حافظه کش (محتوای قبلی) اون رو لود میکنه).

روی xamp اجرا میکنم.
خب ممکنه با تغییر متن سایز تغییر نکنه.میخوام هر لحظه txt رو چک کنه و اگه تغییری داشت عوض کنه حتی اگه حجم عوض نشه.
این کارو میشه انجام داد؟
در ضمن با این کد اصلا هیچ چیز نشون نمیده

arenaw
چهارشنبه 11 شهریور 1394, 17:35 عصر
این کد رو کامل توی یه صفحه جدید بنویسید و کنارش یه فایل txt.txt ایجاد کنید و از طریق آدرس http://127.0.0.0/file.html اجرا کنید.


<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js">
</script>
</head>
<body>
<div id="div"></div>
<script>
$(document).ready(function() {
setInterval(
function readMyFile(){
$("#div").load("txt.txt");
},
1000 /* 60 secs */
);
});
</script>
</body>
</html>

راجع به مورد 3، تقریبا این مشکل روی براوزرهای مدرن وجود ندارن. درضمن اینکه ما به مرورگر بگیم از کش استفاده نکنه خیلی غیرمنطقیه. این کد رو تست کنید، بعید میدونم مشکلی داشته باشه