كيفية الحصول على javascript singleton لإرجاع البيانات عبر $ .post؟

أرغب في إنشاء طريقة على singleton dp.DatapodManager بحيث يتم تحميل البيانات مرة واحدة عبر $ .post ، ثم يمكنني استخدام تلك البيانات عن طريق استدعاء أساليب على المفرد.

إخراج التعليمة البرمجية التالية:

111

222
test data

ما الذي يجب القيام به للحصول على dp.DatapodManager.loadDirectly ()؛ لإضافة محتويات الملف النصي إلى div # content ؟

enter image description here

<html>
    <head>
        <title>test load</title>
        <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                $('div#content').append('
1111

'); $('div#content').append('
222

'); $('div#content').append(dp.DatapodManager.getTestData()); dp.DatapodManager.loadDirectly(function(html) { $('div#content').append(html); }); }); var dp = dp || { VERSION : '0.00.05' }; dp.DatapodManager = (function() { return { loadDirectly: function(callback) { dp.qsys.loadDataFromExternalWebsite(function(stringBlock) { var lines = dp.qstr.convertStringBlockToLines(stringBlock); var html = dp.qstr.appendBrToLines(lines); callback(html); //never executes, cannot set breakpoint here in firebug }); callback('
this is returned

'); }, getTestData: function() { return 'test data'; } } }()); dp.qsys = { loadDataFromExternalWebsite : function(callback) { url = 'http://localhost/webs/dpjs/data/data.txt'; var json = ''; (function() { var json = null; $.post(url, {}, function(jsonString) { callback(jsonString); }); return json; })(); } }; dp.qstr = { convertStringBlockToLines: function(block, trimLines) { var trimLines = trimLines || true; var lines = block.split(dp.qstr.NEW_LINE()); if(trimLines && lines.length > 0) { for(x=0; x 0) { for(x=0; x'; } } return r; } }; </script> </head> <body> <div id="content"></div> </body> </html>
0
حسنًا ، أقوم بتمرير إحدى الوظائف كمعلمة رد اتصال وأقوم بتعبئة الدالة div # content (رمز تم تغييره أعلاه) ولكنه لا يزال يعطيني نفس الإخراج.
وأضاف المؤلف Edward Tanguay, مصدر
صحيح ، أزلت var text الآن. الجزء الأول الذي لا يعمل هو أن معاودة الاتصال الثانية يتم تنفيذها (

يتم إرجاعها

) ولكن ليس رد الاتصال الأول ( html ) كيف يمكنني الحصول على loadDirectly لإرجاع قيمة html التي تحصل عليها من dp.qsys.loadDataFromExternalWebsite . المشكلة الثانية هي ERROR 200 التي أحصل عليها في POST الخاص بي ، عنوان url صالح ويعيد النص.
وأضاف المؤلف Edward Tanguay, مصدر
بفضل @ scr4ve ، من خلال لصق عنوان URL من فايرفوكس إلى الكروم ، لاحظت أنني كنت أتمكن من الوصول إلى ملف .htm عبر file: /// C: /xampp/apache/webs/testjq222/testloadlocal/index.h&zwnj؛ tm </القانون>. عندما أتمكن من الوصول عبر http: //localhost/webs/testjq222/testloadlocal/index.htm فإنه يعمل.
وأضاف المؤلف Edward Tanguay, مصدر
هذا غريب حقا. لقد قمت بلصق شفرتك واختبارها على مضيفي المحلي: الاختلاف الوحيد هو أن الملف الذي تم تحميله بواسطة $ .post هو الآن مجرد ملف نصي بسيط. عملت كل شيء: تمت معالجة محتوى هذا الملف وإلحاق div.
وأضاف المؤلف raina77ow, مصدر
آه ، الملف اللعين://مشكلة عبر النطاق. ) اللعنة عليهم جميعا. )
وأضاف المؤلف raina77ow, مصدر
لا يمكنك. بدلاً من ذلك ، قم بتمرير إحدى الدالات كمعلمة "رد الاتصال" هذه وجعلها تعمل بالشكل المناسب.
وأضاف المؤلف Pointy, مصدر
هل يمكنك فتحه في عرض شبكة أدوات Chrome dev؟ يبدو أن الرد غير صالح.
وأضاف المؤلف Maximilian Hils, مصدر

لا توجد ردود.

0