- Phân tích cú pháp XML AJAX/jQuery
- Sơ đồ XML với Đa kế thừa
- Tuần tự hóa Enum Json so với XML
- XML loại đơn giản, nội dung đơn giản, loại phức tạp, nội dung phức tạp
Đặt câu hỏi không phải để giải quyết vấn đề mà để hiểu rõ hơn về hệ thống
Chuyên gia! Tôi biết rằng bất cứ khi nào bạn nhập mã javascript vào công cụ javascript, nó sẽ được công cụ javascript thực thi ngay lập tức. Vì tôi chưa đọc mã nguồn của Engine nên tôi có những câu hỏi sau:
Giả sử tôi đang tải một vài tệp từ máy chủ từ xa, cụ thể là FILE_1.js và FILE_2.js. Mã trong FILE_2.js yêu cầu một số mã từ FILE_1.js. Vì vậy, tôi đã bao gồm tập tin như sau,
Hy vọng là tôi đã hoàn thành yêu cầu về công cụ Javascript. Thật không may, tôi đã viết 5000KB mã trong FILE_1.js, nhưng tôi chỉ có 5KB mã trong FILE_2.js. Vì máy chủ đa luồng nên FILE_2.js chắc chắn sẽ tải trong trình duyệt của tôi trước khi FILE_1.js hoàn tất.
Các công cụ JavaScript xử lý việc này như thế nào?
Nếu bạn di chuyển mã từ FILE_2.js sang thẻ inline-script như sau, thì công cụ javascript sẽ thực hiện những bước nào để quản lý sự phụ thuộc này?
LƯU Ý: Tôi không mong đợi những câu trả lời chỉ có một từ. Tôi chỉ muốn biết thêm thông tin về việc ai đang quản lý các yêu cầu được thực hiện bởi trình duyệt hay công cụ JavaScript hay chỉ là người dùng trung bình? Nếu yêu cầu/phản hồi được xử lý bởi con người bình thường, thì công cụ javascript thực hiện điều này bằng cách nào?
1 Câu trả lời
Khi tôi đăng câu trả lời về hành vi mã, có hai nơi tôi luôn muốn đến:
DOM API chỉ rõ rằng các tập lệnh phải được thực thi theo thứ tự:
Nếu phần tử có thuộc tính src, không có thuộc tính async và không có cờ "force-async" được đặtPhần tử phải được thêm vào cuối danh sách các tập lệnh sẽ được thực hiện theo thứ tự sớm nhất có thể được liên kết với Tài liệu của phần tử tập lệnh tại thời điểm thuật toán chuẩn bị tập lệnh bắt đầu.
Từ 4.1 Viết kịch bản .Vui lòng kiểm tra danh sách ngoại lệ cho quy tắc này trước - với hoãn lại
hoặc không đồng bộ
tài sản. Đây là 4.12.1.15 Hướng dẫn chi tiết được đưa ra trong . .
Hãy tưởng tượng điều này có ý nghĩa:
//TẬP_TIN_1.js
var trololo = "Kỳ lân";
....
// 1 triệu dòng sau
trololo = "kỳ lân";
var message = "Xin chào thế giới";
//TẬP_TIN_2.js
alert(message); // nếu tệp 1 không được thực thi trước, lệnh này sẽ báo lỗi tham chiếu.
Thông thường, tốt hơn là sử dụng trình tải mô-đun (trình này sẽ trì hoãn việc chèn và thực thi tập lệnh và sẽ quản lý các phụ thuộc một cách phù hợp cho bạn).
Hiện tại, cách tốt nhất để làm điều này là sử dụng thứ gì đó như Trình duyệt phương pháp. hoặc Yêu cầuJS Trong tương lai chúng ta sẽ có thể sử dụng các mô-đun ECMAScript 6.
Vâng, bạn đã nhắc đến điều đó và tôi không thể cưỡng lại được. Vì vậy, nếu chúng ta kiểm tra Chớp chớp CromNguồn (vẫn tương tự trong WebKit):
bool ScriptLoader::prepareScript(const TextPosition& scriptStartPosition,
LegacyTypeSupport hỗ trợLegacyTypes)
{
.....
} else if (client->hasSourceAttribute() && // có thuộc tính src
!client->asyncAttributeValue() && // và không có `async` hoặc `defer`
!m_forceAsync // và nó không bị ép buộc theo cách khác
) { // - woah, điều này giống hệt như thông số kỹ thuật
m_willExecuteInOrder = true; // yêu cầu thực thi theo thứ tự
contextDocument->scriptRunner()->queueScriptForExecution(cái này,
m_tài nguyên,
ScriptRunner::IN_ORDER_EXECUTION);
Tuyệt, vì vậy chúng ta có thể thấy trong mã nguồn rằng nó thêm chúng theo thứ tự phân tích cú pháp - giống như thông số kỹ thuật đã nêu.
Chúng ta hãy xem thế nào chạy kịch bản làm :
void ScriptRunner::queueScriptForExecution(ScriptLoader* scriptLoader,
Tài nguyên ResourcePtr,
Loại thực thi Loại thực thi){
.....
// Thêm nó vào thứ tự thực hiện, như chúng ta có thể thấy, điều này chỉ
// thêm nó vào hàng đợi
trường hợp IN_ORDER_EXECUTION:
m_scriptsToExecuteInOrder.append(PendingScript(phần tử, resource.get()));
phá vỡ;
}
Và, bằng cách sử dụng bộ hẹn giờ, nó sẽ kích hoạt từng mục một khi chúng đã sẵn sàng (hoặc ngay lập tức, nếu không có mục nào đang chờ xử lý):
void ScriptRunner::timerFired(Timer* bộ đếm thời gian)
{
...
scripts. hoán đổi(m_scriptsToExecuteSoon);
đối với (size_t i = 0; i < size; ++i) {
....
//ngọn lửa!
toScriptLoaderIfPossible(phần tử.get())->execute(tài nguyên);
m_document->decrementLoadEventDelayCount();
}
Công cụ Javascript thực thi Javascript trong trình duyệt như thế nào? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/22105343/
Tôi có một biểu mẫu ở định dạng html: Tôi cần JavaScript thực thi trên trường nhập giá trị, nhưng chỉ thông qua việc gửi biểu mẫu. Lý do là trang là một mẫu nên tôi không kiểm soát được nó (không thể có
Diễn đàn tôi quản lý được lưu trữ bằng phần mềm nên tôi không có quyền truy cập vào mã nguồn và tôi chỉ có thể thêm JavaScript vào trang để đạt được mục đích. Tôi đang cố gắng thay thế trường hợp đầu tiên của một số từ khóa văn bản nhất định trên tất cả các trang bằng siêu liên kết. Tôi cũng sắp xếp chúng theo mã quốc gia
Tôi đang sử dụng JS để mở một trang mới và viết mã HTML vào đó, nhưng khi tôi thử viết JS vào trang mới bằng document.write() thì hàm này không hoạt động. Rõ ràng là một khi đã nhìn thấy thì JS chính sẽ đóng lại. Cho buổi khai trương sắp tới
Đặt câu hỏi không phải để giải quyết vấn đề, đặt câu hỏi là để hiểu rõ hơn về các chuyên gia hệ thống! Tôi biết rằng bất cứ khi nào bạn nhập mã javascript vào công cụ javascript, nó sẽ được công cụ javascript thực thi ngay lập tức. Vì tôi chưa thấy Engi
Tôi có hai tập tin javascript trong một thư mục. Tôi muốn truyền một biến từ tệp javascript này sang tệp javascript khác. Tôi nên sử dụng chương trình nào? Câu trả lời hay nhất window.postMessage dùng để nhắn tin giữa các tài liệu. làm
Tôi có một bài tập trong đó tôi cần lấy hai đầu vào và kiểm tra xem cả hai có bằng một hay không. Nếu đó là console.log thông thường console.log false Tôi đã thử một cái gì đó như thế này: hàm isPositive(fir
Tôi đang làm việc trên một ứng dụng web trong đó tôi dự định cho phép các trang web khác (khách hàng) nhúng mã javascript sau vào trang của họ: Ứng dụng web của tôi nằm tại http://example.org. Tôi không thể cho rằng các trang web của khách hàng có JQue
Hiện tại tôi đang sử dụng ba tệp JS bên ngoài. Tôi muốn kết hợp cả ba tệp JS thành một. Hãy làm bất cứ điều gì cần thiết. Tôi đã tạo aio.js và trong aio.js src="https://code.jquery.com/
Ví dụ, tôi có một mảng như thế này: var myArray = []; var item1 = { start: '08:00', end: '09:30' } var item2 = {
Vì vậy, tôi đang tạo một tiện ích mở rộng cho Chrome sử dụng một số tập lệnh TamperMonkey mà tôi đã tạo. Tôi muốn có một tệp javascript "chính" mà bạn có thể đưa vào và thực thi các tập lệnh khác từ đó. Tôi giỏi sử dụng dòng sau để đưa java khác
Tôi có các tệp A, B html và A, B javascript. Và làm thế nào để di chuyển các biến toàn cục được sử dụng trong JavaScript A trực tiếp sang JavaScript B? Ví dụ JavaScript) va
Tôi cần đưa toàn bộ mã sau vào một tệp JavaScript có tên là activate.js. Bạn có thể cho tôi biết cách thực hiện được không? var int = new int({ giây: 30, đánh dấu
Tôi đã tạo một trang chủ EXAMPLE1.Master cho ứng dụng web .net của mình. Tôi lưu trữ giá trị của chúng trong một biến JavaScript. Tôi muốn lấy biến đó trong một tệp JS khác. Ví dụ 1. Master:-
Có thư viện nào tôi có thể sử dụng để chuyển đổi mã như thế này: function () { var a = 1; } thành mã như thế này: function () { var a = 1; } trong trình duyệt của tôi không? Bởi vì tôi đang ở Gi
Tôi nhận được lỗi cú pháp bị thiếu $(document).ready(function changeText() { var p = document.getElementById('bidp
Tôi đang tạo thanh tiến trình. Nó có nhãn. Tôi muốn điều chỉnh nhãn của một đoạn mã hoàn thành cụ thể. Sau khi tìm ra một số câu trả lời cho các giải pháp khả thi, tôi đã đưa ra đoạn mã sau. Cái đầu tiên khởi động và hoạt động như mong đợi. Tuy nhiên, câu thứ hai thì không. Có vấn đề gì với nó vậy? Mã như sau: HTML:
Đây là một câu hỏi thực sự đơn giản mà đầu óc đơn giản của tôi không thể trả lời được: Tại sao các hàm ẩn danh và onload sau đây không chạy khi tôi tải thư viện bên ngoài? Tôi đang bỏ lỡ một điều rất cơ bản. Library.js chỉ có một dòng: console.log(
Tôi biết JavaScript là ngôn ngữ phía máy khách nhưng tôi muốn thử tìm hiểu xem mã JavaScript được nhúng trong mã thực tế có khác biệt gì so với mã chạy trên bảng điều khiển không. Hãy để tôi giải thích bằng một ví dụ: Tôi muốn tạo một
Làm thế nào tôi có thể thay đổi javascript nội tuyến này thành Unobtrusive JavaScript? Cảm ơn! Tôi rất cảm kích câu trả lời của bạn, nhưng nó không hiệu quả. Mã của tôi là: Tệp PHP js document.getElem
Tôi đang tìm cách thanh lịch nhất để "đổ" một đối tượng JavaScript đơn giản vào mã nguồn JavaScript được tạo động. Mục đích: Giả sử chúng ta có máy chủ node.js tạo HTML. Chúng ta có một đối tượng x ở phía máy chủ.
Tôi là một lập trình viên xuất sắc, rất giỏi!